使用quaternion旋转 四元数
void RotateToTarget(Vector3 targetPos){ Vector3 currentPosition=this.transform.position; Quaternion currentRotation=this.transform.rotation; Vector3 direction=(targetPos-currentPosition).normalized; Quaternion targetRotation=Quaternion.LookRotation(direction); transform.rotation=Quaternion.RotateTowards(currentRotation,targetRotation,45f*Time.deltaTime); } Quaternion.FromToRotation()//计算两个旋转的差值