読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU
{スポンサーリンク}

Unity : ScriptableObjectウインドウを自作した

C# Tips Unity

ScriptableObjectについて書いたのですが、いまいち使いづらいところがあります。

なによりなんとかしてほしいのは、作り方がめんどくさいこと!

ということで、ScriptableObjectを出力してくれるスクリプトを自作しました。

つかいかた

スクリプトの用意

Editor ディレクトを作成し、以下のスクリプトを置きます。

using UnityEngine;
using UnityEditor;

public class CreateScriptableObjectWindow : EditorWindow
{
    [MenuItem("Window/CreateScriptableObject")]
    public static void  ShowWindow () {
        EditorWindow.GetWindow(typeof(CreateScriptableObjectWindow));
    }

    public static void Create (string typeName, string path)
    {
        ProjectWindowUtil.CreateAsset(ScriptableObject.CreateInstance(typeName), path);
    }

    public Object CreateObject;

    void OnGUI() {
        CreateObject = (Object)EditorGUILayout.ObjectField (CreateObject, typeof(Object), false);
        if (GUILayout.Button ("Create!")) {
            string path = AssetDatabase.GetAssetPath (CreateObject.GetInstanceID());
            string typeName = CreateObject.name;
            if (path.EndsWith (".cs")) {
                CreateScriptableObjectWindow.Create(typeName, path.Substring(0, path.Length - 3) + ".asset");
            }
        }
    }
}

メニューからウインドウを開く

f:id:sugar_affordance:20160626132638p:plain:w300

メニューのWindowにCreateScriptableObjectが増えているので、クリックすると、ウインドウがぽこっと出てきます。

f:id:sugar_affordance:20160626132634p:plain:w300

ドラッグアンドドロップしてボタン押す

ここに作成したScriptableObjectクラスをドラッグアンドドラッグし、Create!を押します。

f:id:sugar_affordance:20160626132642p:plain

スクリプトのあるディレクトリに新しくアセットが作成されたはずです。

これでScriptableObject使いまくってくだっさ!

Amazon.co.jpアソシエイト