1.使用四元数
目标点-当前点,计算即将forward的方向,根据rotspeed在update里面一点点插值过去。
void RotateTo()
{
Vector3 dir = m_CurrentPathNode.transform.position - Tran.transform.position;
dir.y = 0;
Quaternion q = Quaternion.LookRotation(dir);
Tran.rotation = Quaternion.Slerp(Tran.rotation, q, RotSpeed);
}
2.RotateTowards改变当前forward
Vector3.Angle(RotObj.transform.forward, temp - RotObj.transform.position) 计算目标与物体指向前方之前的夹角
Vector3 dir = temp - RotObj.transform.position;
Tran.forward = Vector3.RotateTowards(RotObj.transform.forward, dir, RotSpeed * Time.deltaTime, 0); Update控制旋转
Unity中角色转向与旋转技巧
本文介绍在Unity游戏开发中实现角色平滑转向的三种方法:使用四元数插值、RotateTowards函数以及LookAt函数。通过这些技巧,可以控制角色根据目标点或路径节点平滑地调整方向。
1万+

被折叠的 条评论
为什么被折叠?



