- Home /
Animator component prevents NavMeshAgent from disabling/enabling dynamically
Has anyone ever had a problem where they could not change the enabled status of a NavMeshAgent while an Animator component was enabled?
I have enemy characters that have an Animator component, a NavMeshAgent component and a custom script that handles the interaction between the two. I am unable to dynamically disable the agent via a call to agent.enabled = false in the custom script. I do not think the script is the problem because the problem persists even if the script is disabled (or removed altogether).
If I disable (or remove) the custom script from the Enemy game object and run the scene, I am not able to disable the the NavMeshAgent component while the Animator component is enabled via the Inspector. If I disable the Animator component (again, via the Inspector and with the custom script disabled), then I am actually able to enable/disable the NavMeshAgent at will. Stranger still, if the NavMeshAgent component is disabled at start of the app (with the Animator component enabled), then I cannot enable the NavMeshAgent component without first disabling the Animator.
So while the Animator is enabled, I cannot switch the enabled status of the the NavMeshAgent. This is why I suspect it is the Animator component (or more likely an animation clip in the AnimatorController).
My best guess is that there is an animation event or animation curve that is causing this, but if this is true, then I have not found the cause. I have a mixture of Mixamo .anim clips and clips from .fbx files in my Animator Controller state machine. I have checked every clip used for an event or curve, but have turned up nothing. It does not matter what state in the Animator state machine is active. Does anyone have any suggestions as to why this is happening?
I do not want to disable the Enemy gameObject completely, I just want to have control over the enabled status of the NavMeshAgent.