1

ユーザーが上向き矢印を押したときに、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 = "";
    }
4

1 に答える 1

2

これはとても奇妙です。

追加したばかり

transform.eulerAngles = transform.eulerAngles;

の中へ

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

そして解決しました。Unity の Transform システムはそれほど敏感ではないと思います。ログでテストしたところ、ログでは回転が約 88 でしたが、インスペクターでは 90 でした。このコードを追加して完了です。

于 2015-08-20T11:27:55.910 に答える