C# 控制navmesh代理旋转以导致异常行为
我有一个navmesh代理,我不满意它如何更新它的旋转(总是稍微关闭),所以我关闭它,自己做 它工作得非常好,但是当我以3-4倍的速度运行游戏(管理游戏)时,他们有时会平躺0,5-1秒,然后继续运行,我假设这是由这个脚本引起的 我很确定这是他们站着不动或正要转身的时候C# 控制navmesh代理旋转以导致异常行为,c#,unity3d,C#,Unity3d,我有一个navmesh代理,我不满意它如何更新它的旋转(总是稍微关闭),所以我关闭它,自己做 它工作得非常好,但是当我以3-4倍的速度运行游戏(管理游戏)时,他们有时会平躺0,5-1秒,然后继续运行,我假设这是由这个脚本引起的 我很确定这是他们站着不动或正要转身的时候 void LateUpdate() { if (agent.velocity.sqrMagnitude > Mathf.Epsilon) { transform.rotation = Quat
void LateUpdate()
{
if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
{
transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
}
}
显然,这是在计算路径时发生的,因此添加此项解决了这一问题:
void LateUpdate()
{
if (agent.hasPath)
{
if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
{
transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
}
}
}
显然,这是在计算路径时发生的,因此添加此项解决了这一问题:
void LateUpdate()
{
if (agent.hasPath)
{
if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
{
transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
}
}
}