如何让对象仅在一个轴上旋转?

时间:2016-02-07 08:48:04

标签: c# unity3d

我使用的是Unity 5(最新版本),我试图制作传送带类型的东西。为此,我想让圆柱体在z轴上旋转,而只在z轴上旋转。我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用transform.Rotate方法围绕固定轴旋转对象。

该方法有各种构造函数,但实现所需的简单方法是使用以下内容,具体取决于您实际想要旋转对象的轴。

using UnityEngine;
using System.Collections;

public class RotateCylinder : MonoBehaviour
{
    // rotation speed in degrees per second.
    private float rotationSpeed = 1f;

    void Update()
    {

        // Use one of the following depending on the axis you want to rotate the object, this will depend on how your object is transformed.

        // Rotate around X Axis
        transform.Rotate(Vector3.right * rotationSpeed * Time.deltaTime);

        // Rotate around Y Axis
        transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);

        // Rotate around Z Axis
        transform.Rotate(Vector3.forward * rotationSpeed * Time.deltaTime);
    }
}

答案 1 :(得分:0)

好吧,在一个轴上旋转 GameObject ONLY 相当困难,没有任何工作正常,向另一个轴添加值,甚至 RotateAroundRotate ,但是...

Vector3 v = transform.localRotation.eulerAngles;
transform.localRotation = Quaternion.Euler(v.x + dx, v.y + dy, v.z + dz);

dx, dy, dz - 你想要改变多少度数。