• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by Bisorinho-Fonseca · Nov 24, 2020 at 10:41 PM · animationcontrollerassetbundlehow-tooverride

What I'm doing wrong here? (assetBundles and AnimatorOverrideController)

Howdy companions!

Resuming... I want to import a asset bundle which contain various animations to override a template (via script), the process of loading the assets is working fine, but I guess I'm missing something in override.

In this moment, I am testing only with one animation clip, and overriding it to two animations of the template

Here the scripts and its functions:


First Script - Animations mounter

This is the main script to override the anims it is initialized after the awake of the main script of player

 public class AnimationAtlas : MonoBehaviour
 {
 
     public PlayerMov player;
     public CharacterAll characterAll; // script which load the animation clips and the override controller
 
     public AnimationClip[] animationsAtlas;
 
     public Animator animator; // will be the animator attribute of the player
 
     public Animation animationWindow; // only a test
 
     public AnimatorOverrideController animatorOverrideController; // will receive the runtimeAnimatorController
 
     public List<KeyValuePair<AnimationClip, AnimationClip>> overrides = new List<KeyValuePair<AnimationClip, AnimationClip>>(); // parameter to GetOverrides()
 
     public void InstantiateObjects()
     {
 
         player = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerMov>(); // PlayerMov is the main script of player
         characterAll = GetComponent<CharacterAll>();
         animator = GameObject.FindGameObjectWithTag("Player").GetComponent<Animator>();
 
         animationsAtlas = characterAll.LoadAssetBundleAnimationsClips();
         animatorOverrideController = characterAll.LoadAssetBundleController();
 
         CreateAnimations();
 
     }
 
     public void CreateAnimations()
     {
 
         RuntimeAnimatorController myController = animator.runtimeAnimatorController; // process I found in Unity documentation ...
         animatorOverrideController.runtimeAnimatorController = myController;         // ... and another answers
 
         animatorOverrideController.GetOverrides(overrides);
 
         for (int i = 0; i < overrides.Count; i++) // for each possible override ...
         {
 
             animatorOverrideController[i.ToString()] = animationsAtlas[i]; // ... assign the animation clip of index "i"
 
         }
 
     }
 


Second Script - Player script

This is the player start method inside his script (and some global variables)

 public class PlayerMov : MonoBehaviour
 {
 
     public Vector3 latePosition;
 
     public Animator animator;
 
     public AnimationAtlas animationAtlas;
 
     private GameObject p1, p2;
 
     public void Start()
     {
 
         animationAtlas = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<AnimationAtlas>(); // the main anim script is on camera
         animationAtlas.InstantiateObjects(); // calls the script above
         p1 = GameObject.FindGameObjectWithTag("Player1");
         p2 = GameObject.FindGameObjectWithTag("Player2");
 
         animator = GetComponent<Animator>();
 
     }


Third Script - Assets loader

This is the scripts thats load all assets, its divided in 2 methods thats:

  1. Load the AnimationOverrideController and returns it
  2. Load the AnimationClips and returns it

 public class CharacterAll : MonoBehaviour
 {
 
     public AnimationClip[] animationClips;
 
     public AnimatorOverrideController LoadAssetBundleController()
     {
 
         var myLoadedAssetBundle = AssetBundle.LoadFromFile(StaticComponents.buildsOutput + "/animation/controller");
 
         if (myLoadedAssetBundle == null)
         {
             Debug.Log("Failed to load AssetBundle!");
             return null;
         }
         return myLoadedAssetBundle.LoadAsset<AnimatorOverrideController>("Player1");
     }
     
     public AnimationClip[] LoadAssetBundleAnimationsClips()
     {
 
             var myLoadedAssetBundle = AssetBundle.LoadFromFile(StaticComponents.buildsOutput + "/animation/" + StaticComponents.choose);
 
             if (myLoadedAssetBundle == null)
             {
                 Debug.Log("Failed to load AssetBundle!");
                 return null;
             }
             animationClips = myLoadedAssetBundle.LoadAllAssets<AnimationClip>();
 
         return animationClips;
         
     }




Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

358 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Animation Override Controllers stop working 0 Answers

Using Override Animation Controllers (NOT WORKING) 0 Answers

Character moving up when animated. 1 Answer

Not Run while Aiming; Slope Terrain Making Object Faster 0 Answers

Added a new animation clip to my animator and now I can't look up and down in game 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges