万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    AnimatorからAnimatorControllerを取得するまで Unity C#


     ↓

     ↓

                Animator animator = selectedObject.GetComponent<Animator>();
                RuntimeAnimatorController runtimeAnimatorController = animator.runtimeAnimatorController;
                Debug.Log (runtimeAnim
    

    のままだと、まだruntimeAnimatorControllerはRuntimeAnimatorController型だ。
    AnimatorController型を取りたいが、

    “ゲーム開発手法の民主化を謳っているUnityは、これをするのに

    UnityEditorInternal.AnimatorController ac = runtimeAnimatorController as UnityEditorInternal.AnimatorController;
    

    を行う。
    すると、この「ac」変数に入る。

    その後

                int layerCount = ac.layerCount;
    
                for(int i = 0; i<layerCount; i++)
                {
                    UnityEditorInternal.AnimatorControllerLayer layer = ac.GetLayer(i);
                    string layerName = layer.name;
                    UnityEditorInternal.StateMachine sm = layer.stateMachine;
    
                    for(int n = 0; n<sm.stateCount; n++)
                    {
                        UnityEditorInternal.State state = sm.GetState(n);
                        Motion motion = state.GetMotion ();
                        AnimationClip aniClip = motion as AnimationClip;
                        Debug.Log (aniClip.name);
                    }
                }
    

    とやればやっとMotion型のmotionからAnimationClipまでたどり着ける。