У меня есть код, который предсказывает траекторию стрельбы из стрелки в LateUpdate()
. Он отлично работает на ПК и с мышью. Ниже приведен код для использования мыши:
if(Input.GetMouseButton(0)){
//get the rotation based on the start drag position compared to the current drag position
zRotation = (Input.mousePosition.y - mouseStart) * (manager.data.sensitivity/15);
zRotation = Mathf.Clamp(zRotation, -manager.data.maxAimRotation, manager.data.maxAimRotation);
}
//reset the rotation if the player is not aiming
else if((int) zRotation != 0){
if(zRotation > 0){
zRotation --;
}
else{
zRotation ++;
}
}
Я хочу перенести это на Android сейчас, поэтому играюсь с Input.Touch
. Я изменил вышеуказанный код на следующее:
if (Input.touchCount > 0)
{
//get the rotation based on the start drag position compared to the current drag position
zRotation = (Input.GetTouch(0).deltaPosition.y) * (manager.data.sensitivity / 15);
zRotation = Mathf.Clamp(zRotation, -manager.data.maxAimRotation, manager.data.maxAimRotation);
}
//reset the rotation if the player is not aiming
else if ((int)zRotation != 0)
{
if (zRotation > 0)
{
zRotation--;
}
else
{
zRotation++;
}
}
Но zRotation
не работает, как это работает в мыши. Он продолжает сбрасываться в начальную позицию после каждого кадра. Это почти похоже на дрожание.
Что я делаю не так?