Я пытаюсь создать «комбинированную» систему в единстве, но я создал цикл Unbreakable, который я изо всех сил пытаюсь понять.Я попытался использовать цикл while, и у меня возникла эта проблема, поэтому я хотел попробовать цикл for, но у меня тот же результат.
Система комбо должна работать так, что когда игрок входит в условие с врагом, он может ввести цепочку кнопок на контроллере, чтобы вызвать комбо.Если игрок вводит правильную комбинацию, применяются эффекты.Пока что я беспокоюсь только о том, чтобы заставить работать комбо-систему.
Я создал предопределенный массив символов для комбо, а затем сравнил входные данные от игрока с этим массивом.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ComboSystem : MonoBehaviour
{
public char currentButton;
public char[] combo_arr = { 'A', 'A', 'B', 'B', 'X' };
PlayerLockOnSystem plos;
private void Start()
{
plos = GetComponent<PlayerLockOnSystem>();
}
private void Update()
{
if (plos.lockedOn)
{
Combo();
}
}
void DetectComboButtons()
{
if (Input.GetButton("Joystick A"))
{
currentButton = 'A';
}
if (Input.GetButton("Joystick X"))
{
currentButton = 'X';
}
if (Input.GetButton("Joystick B"))
{
currentButton = 'B';
}
}
void Combo()
{
for (int i = 0; i < combo_arr.Length; i++)
{
DetectComboButtons();
if (currentButton == combo_arr[i])
{
Debug.Log("Correct: " + currentButton);
}
else
{
i = 0;
Debug.Log("Incorrect");
}
}
}
}
При запуске метода Combo () происходит сбой Unity, и мне приходится принудительно закрывать редактор.