C# 统一旋转我已经移动的对象

C# 统一旋转我已经移动的对象,c#,unity3d,C#,Unity3d,我正在通过在unity中制作游戏来学习编码。我有一块石头在上下移动,不能让它从中心旋转。我试图寻找解决办法,但没有找到。有什么想法吗 IEnumerator Move(Vector3 target) { while (Mathf.Abs((target - transform.localPosition).y) > 0.20f) { Vector3 direction = target.y == topPosition.y ? Vector3.up : Ve

我正在通过在unity中制作游戏来学习编码。我有一块石头在上下移动,不能让它从中心旋转。我试图寻找解决办法,但没有找到。有什么想法吗

IEnumerator Move(Vector3 target)
{
    while (Mathf.Abs((target - transform.localPosition).y) > 0.20f)
    {
        Vector3 direction = target.y == topPosition.y ? Vector3.up : Vector3.down;
        transform.localPosition += direction * Time.deltaTime * speed;

        yield return null;
    }

    yield return new WaitForSeconds (0.5f);

    Vector3 newTarget = target.y == topPosition.y ? bottomPosition : topPosition;

    StartCoroutine (Move (newTarget));
}

您可以在对象中设置新的EULERANGES吗? 也许您可以基于transform.eulerAngles创建一个新的

Vector3 newAngles = new Vector3(transform.eulerAngles.x-1, transform.eulerAngles.y, transform.eulerAngles.z);
transform.eulerAngles = newAngles;

在这个例子中,我“应用”了X轴的旋转。也许您可以在更新方法中执行类似操作。

您是否尝试调用
transform.Rotate
?或者分配给
transform.localEulerAngles
也可以。