#c# #android #unity3d
#c# #Android #unity3d
Вопрос:
У меня есть космический корабль, который будет вращаться по часовой стрелке или против часовой стрелки в зависимости от того, нажата ли левая или правая кнопка. Я использовал виртуальный джойстик, и он работал нормально, но решил переключиться на левую и правую кнопки. Теперь, если нажать кнопку, она будет поворачиваться в фиксированное положение и останавливаться каждый раз, когда я нажимаю кнопку, я бы хотел, чтобы она непрерывно двигалась в одном направлении, пока кнопка удерживается нажатой, и останавливается при отпускании.
Я использую стандартные ресурсы Unity с помощью кроссплатформенного скрипта ввода ButtonHadler в сочетании с моим скриптом «переместить».
void Update()
{
if (CrossPlatformInputManager.GetButtonDown("turn"))
{
TurnShip();
}
}
public void TurnShip()
{
transform.Rotate(Vector3.up * 50f * Time.deltaTime);
}
Комментарии:
1. Обновление: в итоге я удалил свои скрипты и добавил их обратно, и теперь мой корабль вращается без нажатия кнопки. Я также настраиваю свои кнопки через триггер события (сценарий)
Ответ №1:
Вы используете GetButtonDown
, который возвращает true только один раз, когда вы нажимаете кнопку, и остается false, пока вы не отпустите кнопку и не нажмете ее снова. Используйте GetButton
вместо этого.
Комментарии:
1. Я перешел на GetButton, но теперь он не перемещается.
Ответ №2:
Изменение на GetButton было частью того, чего мне не хватало, но я также неправильно настроил свои кнопки, я случайно добавил один тип события с двумя функциями указатель вниз и указатель вверх в одном и том же типе события вместо их разделения.