Пытаюсь настроить систему комбо-атак в Unity2D под новую систему ввода. Как указать ссылку на нажатую кнопку?C#

Место общения программистов C#
Ответить
Anonymous
 Пытаюсь настроить систему комбо-атак в Unity2D под новую систему ввода. Как указать ссылку на нажатую кнопку?

Сообщение Anonymous »

Чтобы быть более конкретным, я пытаюсь создать таймер, который запускается, когда игрок начинает атаковать, чтобы измерить количество времени, прошедшее с момента последнего нажатия кнопки. Если они не нажмут кнопку атаки снова в течение определенного окна, игрок снова перейдет в режим ожидания.
У меня возникли проблемы с тем, чтобы мой код определял, когда кнопка нажимается другим методом, отличным от метода, использующего Context.Started. По какой-то причине я не думаю, что Input.GetKeyDown работает. atkTimer — это начальный таймер для измерения времени между нажатиями кнопок, а atkCancel предназначен для отмены атаки, если игрок не нажимает кнопку достаточно быстро.
Вот соответствующий код:
public bool isSlashing = false;
private float atkCountdown = 0f;
private float atkCount;

public void Slash(InputAction.CallbackContext context)
{
if (context.started && !isSlashing && atkCountdown == 0f)
{
isSlashing = true;
Debug.Log("slash!");

PlayerAnimator.SetBool("Slashing", true);
PlayerAnimator.SetFloat("SlashCount", 1);
StartCoroutine(atkTimer());
StartCoroutine(atkCancel());
}
}

public IEnumerator atkTimer()
{
yield return new WaitForSeconds(0.1f);

//isSlashing = false;
if (Input.GetKeyDown(KeyCode.J) && atkCountdown

Подробнее здесь: https://stackoverflow.com/questions/798 ... m-how-do-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»