由检查器视图按钮调用的自定义编辑器方法

时间:2017-04-03 17:31:10

标签: unity3d

我有一个方法可以从文件夹中读取所有资源,并创建一个包含文件夹中所有文件的枚举的文件。
如何通过按检查器中的按钮来运行它?我观看的所有自定义编辑器教程都显示自定义编辑器必须连接到一个它应该编辑的类,并且在我的情况下不适用。

public class EnumGeneratorTool : Editor
{
    [SerializeField]
    string sourcePath;

    [SerializeField]
    string outputPath;

    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        if (GUILayout.Button("Do Thing"))
        {
            // I want thnis to happen when Do Thing button is pressed
            Debug.Log("Do the thing: " + sourcePath);
        }
    }
} 

1 个答案:

答案 0 :(得分:0)

您可以为此创建一个菜单,因此不需要额外的游戏对象来保存您的脚本。这是代码。

public class CustomMenu {

// Add a menu item named "Do Something" to MyMenu in the menu bar.
[MenuItem("MyMenu/Do Something")]
static void DoSomething()
{
    Debug.Log("Doing Something...");
}

// Add a menu item named "Do Something" to MyMenu in the menu bar. [MenuItem("MyMenu/Do Something")] static void DoSomething() { Debug.Log("Doing Something..."); }

如果编译正确,您应该会在菜单栏中看到自定义菜单。 enter image description here

修改 Monobehaviour组件将附加到gameobject。 }

public class Parser : MonoBehaviour {

public string path = "";

public void DoSomething()
{
    Debug.Log("Doing Something with path.");
}

编辑课程。 (必须在"编辑器"文件夹才能正常工作)。 public string path = ""; public void DoSomething() { Debug.Log("Doing Something with path."); }

}

using UnityEditor;