我有一个navmesh代理,我对它更新旋转的方式不满意(总是稍微关闭),所以我关闭了它,并自己做了。
它真的很好用,但是当我以3-4倍的速度运行游戏(管理游戏)时,它们有时会平躺0,5-1秒,然后继续运行,我假设这是由这个脚本引起的。
我很确定是在他们原地踏步或即将转弯的时候。
void LateUpdate()
{
if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
{
transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
}
}发布于 2019-10-22 03:41:38
显然,这是在计算路径时发生的,因此添加以下代码即可解决此问题:
void LateUpdate()
{
if (agent.hasPath)
{
if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
{
transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
}
}
}https://stackoverflow.com/questions/58491429
复制相似问题