LoginSignup
6
6

More than 1 year has passed since last update.

【Unity拡張】AnimatorControllerの作成からアタッチまでを自動化する

Last updated at Posted at 2017-01-07

はじめに

UnityでAnimatorを使おうとした場合、以下の作業を行う必要があります。

メニューからAnimatorControllerを作成
-> 作成した.controllerをAnimatorコンポーネントへアタッチ

この作業がめんどくさかったので、エディター拡張で自動化してみました。

ソースコード

以下のスクリプトをプロジェクトのEditorフォルダ以下へ入れてください。

AnimatorInspector.cs
using UnityEngine;
using UnityEditor;
using UnityEditor.Animations;

[CustomEditor(typeof(Animator))]
public class AnimatorInspector : Editor
{
    public override void OnInspectorGUI()
    {
        var animator = target as Animator;
        if (animator.runtimeAnimatorController == null)
        {
            if (GUILayout.Button("Create"))
            {
                CreateAnimatorController();
            }
        }
        this.DrawDefaultInspector();
    }

    /// <summary>
    /// AnimatorController作成 
    /// </summary>
    void CreateAnimatorController()
    {
        string fullpath = EditorUtility.SaveFilePanel("AnimatorController作成", "Assets", "New AnimatorController", "controller");
        if (fullpath.Length == 0) { return; }

        string path = "Assets" + fullpath.Substring(Application.dataPath.Length);

        //非常に単純なAnimatorControllerを生成するEditor拡張コード
        //http://qiita.com/RyotaMurohoshi/items/c1f29f9afbce910c5438
        AnimatorController controller = AnimatorController.CreateAnimatorControllerAtPath(path);

        // AnimatorコンポーネントにAnimatorControllerをアタッチ
        var animator = target as Animator;
        animator.runtimeAnimatorController = (RuntimeAnimatorController)controller;
        Debug.Log("Create: " + path, controller);
    }
}

結果

上記のスクリプトをプロジェクトに入れるとAnimatorコンポーネントにボタンが一つ追加されます。



Createボタンを押して保存を押せば、あとは controller作成->Animatorへのアタッチ を自動でやってくれます。楽ちんです(完

参考

非常に単純なAnimatorControllerを生成するEditor拡張コード
http://qiita.com/RyotaMurohoshi/items/c1f29f9afbce910c5438

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6