カスタムインスペクターへのボタンの追加

確認済のバージョン: 4.3

-

難易度: 中級

Unity では エディターウインドウにボタンを加え、関数をスクリプトから呼び出すことができます。そうすることによって、特別にワークフローを改善するためのスクリプトをかくことができます。ここでは、カスタムインスペクターでボタンを作る方法とそれらをスクリプト内に存在する関数と紐づける方法を学びます。

カスタムインスペクターへのボタンの追加

中級 インターフェースと基本

ObjectBuilderScript

Code snippet

using UnityEngine;
using System.Collections;

public class ObjectBuilderScript : MonoBehaviour 
{
    public GameObject obj;
    public Vector3 spawnPoint;

    
    public void BuildObject()
    {
        Instantiate(obj, spawnPoint, Quaternion.identity);
    }
}
#pragma strict

var obj : GameObject;
var spawnPoint : Vector3;


function BuildObject()
{
    Instantiate(obj, spawnPoint, Quaternion.identity);
}
import UnityEngine
import System.Collections


public class ObjectBuilderScript(MonoBehaviour):

    public obj as GameObject

    public spawnPoint as Vector3

    
    
    public def BuildObject():
        Instantiate(obj, spawnPoint, Quaternion.identity)

ObjectBuilderEditor

Code snippet

using UnityEngine;
using System.Collections;
using UnityEditor;

[CustomEditor(typeof(ObjectBuilderScript))]
public class ObjectBuilderEditor : Editor
{
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();
        
        ObjectBuilderScript myScript = (ObjectBuilderScript)target;
        if(GUILayout.Button("Build Object"))
        {
            myScript.BuildObject();
        }
    }
}
#pragma strict

@CustomEditor (ObjectBuilderScript)
public class ObjectBuilderEditor extends Editor
{
    function OnInspectorGUI()
    {
        DrawDefaultInspector();
        
        var myScript : ObjectBuilderScript = target;
        if(GUILayout.Button("Build Object"))
        {
            myScript.BuildObject();
        }
    }
}
import UnityEngine
import System.Collections
import UnityEditor


[CustomEditor(typeof(ObjectBuilderScript))]
public class ObjectBuilderEditor(Editor):

    public override def OnInspectorGUI():
        DrawDefaultInspector()
        
        myScript = (target cast ObjectBuilderScript)
        if GUILayout.Button('Build Object'):
            myScript.BuildObject()

関連するチュートリアル