旋转值混淆C#

时间:2016-09-29 15:54:12

标签: c# unity3d rotation

我尝试使用C#和Unity创建一个简单的游戏机制,允许玩家向右转45度,然后将新的旋转设置为-45。它有点工作:

using UnityEngine;
using System.Collections;

public class Movement : MonoBehaviour
{
    public float speed = 215f;

    private bool isLeft = false;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if (isLeft == false)
            {
                transform.rotation = Quaternion.Euler(90, 45,0);
                isLeft = true;
                Debug.Log("Turned Right");
            }
            else
            {

                transform.rotation = Quaternion.Euler(90, 0, 0);

                // No matter what I put as the x value, it always sets it to the z, 
                // for example: if I put 
                // transform.rotation = Quaternion.Euler(90, 270, 0); 
                // the position would be 90, 0, 270.
                Debug.Log("Turned Left");
                isLeft = false;
            }
        }
    }
}

这就是我想要发生的事情:

第一次点击:旋转值设置为90, 45, 0

第二次点击:轮换值设置为90, -45, 0

我使用的命令错了吗?

1 个答案:

答案 0 :(得分:0)

如果您更改此行: 。 transform.rotation = Quaternion.Euler(90,0,0);对于这个 。 transform.rotation = Quaternion.Euler(90,-45,0); 应该解决你的问题。

快乐的编码!