2017-02-27 73 views
0

我正在学习通过统一游戏来编写代码。我有一块上下移动的岩石,无法从中心旋转。我试图寻找一个解决方案,但无法找到它。有任何想法吗?在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)); 
} 
+0

你有没有试过调用'transform.Rotate'?或者分配给'transform.localEulerAngles'也可以。 – rutter

回答

1

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

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

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