Edited at

Unity で Animation を作り込んだ後の Hierarchy 変更

More than 3 years have passed since last update.


環境

Unity 5.3.4f1 Windows で確認


経緯

以下のような Scene を作成し、CanvasAnimator を張り付け。

hierarchy0.png

Animation を作成して CanvasAnimator に設定し、Animation ウィンドウでポチポチ。

animation0.png

アニメーションを設定した GameObject の名前や階層を変更。



  • PanelHoge



    • Image0Foo


    • Image1Bar


    • Image3FooBar



hierarchy1.png

(´-﹏-`;)

animation1.png


解決策 1


  1. Animation ウィンドウの Missing! となっている要素をクリック

  2. Windows の場合はもう一度クリック、Mac の場合は Enter キーを押す

  3. 要素名の部分がテキストボックスになるので、新しい要素名を入力して Enter キーを押す

現在の UnityEditor では、この方法はアニメーションの対象となる GameObject (Image0 など) が Animator を張り付けた GameObject (Canvas) の直下にある場合に限り有効なようです。

UnityEditor のバグか仕様により、今回の例のようにアニメーションの対象となる GameObject (Image0 など) が Animator を張り付けた GameObject (Canvas) の直下にない場合、この方法で修正しようとすると Missing を解消できないばかりかパスがおかしなことになるので、解決策 2 を使って修正します。


解決策 2

Edit > Project Settings > Editor を開き、Asset SerializationModeForce Text に変更します。 (プロジェクトを作ったらまずやる設定かと思いますが……)

inspector0.png

これで .anim ファイルの中身が YAML になったので、テキストエディタで開きます。

explorer0.png

複数個所にある path: の項目に古い GameObject のパスが設定されているので、全て新しいものに書き換えます。 (階層はスラッシュ区切りで表します。)

変更前 :

editor0.png

変更後 :

editor1.png

上手くいったようです :)

animation2.png