いんでぃーづ

ゲームいろいろ、いろいろ自由

Unity : ScriptableObjectを書き出すウインドウを自作してみた

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使いまくってくだっさ!


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。