Я столкнулся со странной проблемой, связанной с влиянием на значения вращения преобразования Unity. Это может быть просто вещь Unity, но я не могу найти информацию о том, почему она будет действовать так, как есть. Я испытываю странный эффект прокрутки значений поворота, когда я пытаюсь постепенно увеличивать вращение моего 2D-персонажа.
public class PlayerController : MonoBehaviour
{
public float speed = 1f;
// Update is called once per frame
void Update()
{
Vector3 pos = transform.position;
Quaternion rot = transform.rotation;
if(Input.GetKey(KeyCode.UpArrow))
{
pos += transform.right * speed * Time.deltaTime;
}
if(Input.GetKey(KeyCode.LeftArrow))
{
rot.z += 2 * Time.deltaTime;
}
if (Input.GetKey(KeyCode.RightArrow))
{
rot.z -= 2 * Time.deltaTime;
}
// Update the position
transform.position = pos;
transform.rotation = rot;
}
}
GIF проблемы
На GIF-изображении вы можете видеть, что значение поворота сначала быстро увеличивается, а затем начинает замедляться по мере приближения к отметке 180. Может кто-нибудь объяснить мне, почему это происходит и как этого избежать?