点击红色圈后,实现选中plane旋转至人物正前方
第一步:首先获取选中plane与正前方的夹角
float AngleGet(Vector3 from, Vector3 to)
{
Vector3 v3 = Vector3.Cross(from, to);
if (v3.y > 0)
return Vector3.Angle(from, to);
else
return 360 - Vector3.Angle(from, to);
}
第二部:协程控制旋转
IEnumerator StartTransRotateLerp(Transform trans, float angle)
{
if (angle > 180)
{
angle = 360 - angle;
angle = -angle;
}
int i = 0;
float cnt = Mathf.Abs(angle) / 180.0f * 60.0f;
float clip = angle / cnt;
while( i < (int)cnt)
{
gameObject.transform.Rotate(new Vector3(0, clip, 0));
i++;
yield return new WaitForEndOfFrame();
}
trans.GetComponent<XinjianIntroPlane>().m_text.SetActive(true);
}