似乎找不到我发现这个问题的任何建议。我有一个遵循我的玩家的代理商,我想在击中我的播放器时推回该代理商,但可以正常工作,但是代理位置似乎无法正确更新,因为碰撞后,它无法正确尝试到达播放器再次,就像它认为它已经达到其位置一样。
它还在Unity文档中说,我需要将僵化的体设置为运动学,但是我无法添加武力?
private void Update()
{
if (!playerHit && followPlayer)
{
_agent.SetDestination(GameManager.instance.ActivePlayer.transform.position);
}
}
private void FixedUpdate()
{
if (playerHit)
{
_rb.AddForce(-transform.forward * 10, ForceMode.Impulse);
}
}
您可以通过在一定的时间内禁用NavMesh代理,然后在速度接近零时重新启用它。
private void Update()
{
if (!playerHit && followPlayer)
{
_agent.SetDestination(GameManager.instance.ActivePlayer.transform.position);
}
}
private void FixedUpdate()
{
if (playerHit)
{
agent.enabled = false; // disabling the navmesh agent.
_rb.AddForce(-transform.forward * 10, ForceMode.Impulse);
}
}
可以改进实施,让我知道它是否有帮助。