仅在Z轴上旋转GameObject C#

时间:2015-05-06 10:28:11

标签: c# unity3d rotation gameobject

在这里找到这个答案: Rotate a gameobject in Unity

我发现这非常有用,但我想将旋转仅分配给Z轴,这是我无法工作的。

using UnityEngine;
using System.Collections;

public class Rotation : MonoBehaviour {
    public GameObject Player;
    public GameObject PlayerCube;

    // Use this for initialization
    void Start () {
        var playerMapPos = Player;
        var playerWorldPos = PlayerCube;
        PlayerCube.transform.rotation  = Player.transform.rotation;
    }

    // Update is called once per frame
    void Update () {
    }
}

2 个答案:

答案 0 :(得分:1)

要限制旋转轴,需要使用欧拉角而不是四元数。首先,将旋转四元数转换为欧拉角,然后根据需要修改旋转(将除y以外的所有轴分配为0),然后将其转换回来。

答案 1 :(得分:1)

您也可以使用Quaternion,但需要具体说明要旋转的数量以及要应用的Vector3方向(即:Vector3.up)

PlayerCube.transform.rotation = Quaternion.AngleAxis(angle, Vector3.up);