Я делаю игру для двух игроков. У них обоих есть кнопка, которую можно нажать, чтобы зарядить счетчик, а затем отпустить, чтобы выполнить действие в зависимости от того, как долго они заряжали счетчик.
Я использую левую кнопку. сдвиг и сдвиг вправо в качестве двух кнопок проигрывателя.
Проблема в том, что если они оба заряжаются одновременно, то когда один из них отпускает кнопку, вход Событие .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
Unity3d - Две кнопки ввода одновременно - задержка срабатывания события ⇐ C#
Место общения программистов C#
1726678200
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());
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/16522724/unity3d-two-input-buttons-at-once-delay-in-event-triggering[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия