Почему мой объект не вращается непрерывно при нажатии кнопки?

#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 было частью того, чего мне не хватало, но я также неправильно настроил свои кнопки, я случайно добавил один тип события с двумя функциями указатель вниз и указатель вверх в одном и том же типе события вместо их разделения.