0

我编写了 Card 类的函数,它应该围绕它的 Y 轴及时旋转 Card。

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 轴旋转 Card。
另一方面,第二次调用使 Card 围绕某个奇怪的点旋转。

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

4

1 回答 1

0

您是否尝试改用 transform.localEulerAngles ?

于 2013-04-18T09:47:55.203 回答