Unity3d - Две кнопки ввода одновременно - задержка срабатывания событияC#

Место общения программистов C#
Ответить
Anonymous
 Unity3d - Две кнопки ввода одновременно - задержка срабатывания события

Сообщение Anonymous »

Я делаю игру для двух игроков. У них обоих есть кнопка, которую можно нажать, чтобы зарядить счетчик, а затем отпустить, чтобы выполнить действие в зависимости от того, как долго они заряжали счетчик.

Я использую левую кнопку. сдвиг и сдвиг вправо в качестве двух кнопок проигрывателя.

Проблема в том, что если они оба заряжаются одновременно, то когда один из них отпускает кнопку, вход Событие .GetButtonUp не запускается примерно через полсекунды.
Если заряжается только один игрок, то событие запускается сразу, когда он отпускает.

Есть идеи, почему и как это решить?
Это произошло на двух разных компьютерах.

Изменить: немного кода

using UnityEngine;
using System.Collections;

public class ObjectScript : MonoBehaviour {
void Update () {
for (int i = 0; i < 2; i++) {
if (isButtonDown(i)) // button first pressed
buttonDown(i);
if (isButtonUp(i)) // button released
buttonUp(i);
if (isButtonPressed(i)) // while button held pressed
buttonIsPressed(i);
}
}

// checks whether button has just been pressed down for given player
private bool isButtonDown(int player) {
return Input.GetButtonDown(getPlayerKeyName(player));
}

// checks whether button is held pressed down for given player
private bool isButtonPressed(int player) {
return Input.GetButton(getPlayerKeyName(player));
}

// checks whether has just been released for given player
private bool isButtonUp(int player) {
return Input.GetButtonUp(getPlayerKeyName(player));
}

// get the name of the key per player
private string getPlayerKeyName(int player) {
return "Player" + (player+1).ToString() + "Key";
}

// when button is first pressed
private void buttonDown(int player) {
Debug.Log("Button pressed: " + player.ToString());
}

// while button is pressed
private void buttonIsPressed(int player) {
}

// when button is first released
private void buttonUp(int player) {
Debug.Log("Button released: " + player.ToString());
}
}


Подробнее здесь: https://stackoverflow.com/questions/165 ... triggering
Ответить

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

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

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

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

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