RotateFunction有不同的行为

时间:2013-04-16 11:58:14

标签: c# rotation unity3d

我编写了类卡的功能,它应该及时围绕其Y轴旋转卡。

public IEnumerator RotateCard(float angle)
{
     if(rotating)
         yield break;
     rotating = true;
     float newAngle = curRotation.y + angle;
     while(curRotation.y < newAngle)
     {   
         curRotation.y = Mathf.MoveTowards(curRotation.y, newAngle, rotateSpeed * Time.deltaTime);
         transform.eulerAngles = curRotation;
         yield return null;
      }
      rotating = false;
}

我必须在Card.OnMouseDown()中调用此函数:

IEnumerator OnMouseDown()
{
     print ("Card clicked");
     yield return StartCoroutine( RotateCard(180));
     yield return StartCoroutine(gameManager.actionDeck[0].RotateCard(180));
}

其中gameManager是包含卡片actionDeck列表的对象。

第一次调用执行的功能是什么 - 围绕其Y轴旋转卡 另一方面,第二次呼叫围绕一些奇怪的点旋转卡。

任何想法为什么以及如何使其以与#1相同的方式工作?

1 个答案:

答案 0 :(得分:0)

您是否尝试使用transform.localEulerAngles?