- Home /
How do I switch a character's animator controller to an animator override controller via script?
I am making a beat em up game where the player has a different set of animations depending on what weapon he is carrying.
I have a base animator controller for when the character is unarmed labeled "ControllerNW" (NW stands for No Weapons). Each weapon type has an animator override controller with ControllerNW plugged into it; they are intended to switch the attack and idle animation clips when the character is carrying different weapons.
In theory, the character should be able to switch to one of these overrides when a corresponding boolean parameter switches to true. For example: If he grabs a sword, it should set the bool "HasSword" to True and 'ControllerNW' controller switches to the 'SwordControl' override.
However, even after extensive googling, I have no idea how to successfully switch controllers and overrides in the middle of play. The closest answer I've seen was this:
Animator animator = playerTransform.gameObject.GetComponent<Animator>();
animator.runtimeAnimatorController = Resources.Load("path_to_your_controller") as RuntimeAnimatorController;
When I tried that, I get a warning message saying the controller failed to initialize (perhaps I've been typing the path wrong?) and my character cannot move at all.
EDIT: The question below is about the exact same issue but the answers are too vague. Could someone please take the time to post an example code showing how to properly use AnimatorOverrideController and AnimationClipPair?
http://answers.unity3d.com/questions/904324/changing-animation-controller-at-runtime.html
Your answer
Follow this Question
Related Questions
How to trigger the same animator state in unity5 with script? 2 Answers
Confused at triggering a simple animation 2 Answers
Animator Override Controller changed at runtime doesn't always play the animations correctly 1 Answer
Adding an animator layer makes my 2D character float above the ground 1 Answer