Quaternion.Lerp不会以精确的度数旋转对象

时间:2015-08-20 09:19:02

标签: unity3d quaternions lerp

当用户按下upArrow时,我想用Quaternion.Lerp将对象旋转90度。但每次旋转后我都可以看到它不会将我的物体正好旋转90度。大约88度旋转。问题是什么?我该如何解决这个问题?

    if (Input.GetKeyDown(KeyCode.UpArrow))
    {
        to.eulerAngles = transform.eulerAngles + new Vector3(90, 0, 0);
        from.eulerAngles = transform.eulerAngles;
        direction = "up";
    }

    if("up".Equals(direction))
        transform.rotation = Quaternion.Lerp(from, to, Time.deltaTime*10);

    if (transform.eulerAngles==to.eulerAngles)
    {
        direction = "";
    }

1 个答案:

答案 0 :(得分:2)

这太奇怪了。

刚刚添加

<div id="box">
  <div id="tri"></div>
  Some text
</div>

transform.eulerAngles = transform.eulerAngles;

并解决了。我认为Unitys Transform系统不是那么敏感,我在日志中测试它,甚至它在日志上的旋转大约是88,在检查器中它是90.所以我添加了这个代码并且它完成了。