在Unity中旋转我已移动的对象

时间:2017-02-27 22:28:20

标签: c# unity3d

我正在通过统一游戏来学习编码。我有一块上下移动的岩石,无法从中心旋转。我试着找一个解决方案但找不到它。任何想法?

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));
}

1 个答案:

答案 0 :(得分:1)

您可以在对象中设置新的eulerAngles吗? 也许你可以根据transform.eulerAngles创建一个新的。

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

在这个例子中,我“旋转”到X轴的旋转。也许你可以在Update方法中做这样的事情。