Unity Editor 扩展

| 分类 游戏开发之unity  好好玩游戏  | 标签 游戏  Unity  C#  Editor  MonoBehaviour 

有这样的一个需求,希望为某个MonoBehaviour 在Unity 编辑环境下增加一个按钮,然后在开发环境下点击该按钮触发相关的逻辑,比如我要去遍历下面这个Input Actions 下面所有的Action

先编写一个MonoBehaviour

public class InputController : MonoBehaviour
{
    public PlayerInput playerInput;     // PlayerInput

    public void Test()
    {
        foreach (var actionMap in playerInput.actions.actionMaps)
        {
            foreach (var action in actionMap.actions)
            {
                Debug.Log(action.name);
            }
        }
    }
}

然后为它编写编辑器扩展

[CustomEditor(typeof(InputController))]
public class InputControllerEditor : Editor
{
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        InputController inputController = (InputController)target;
        if (GUILayout.Button("Test"))
        {
            inputController.Test();
        }
    }
}

将InputController 这个MonoBehaviour 实现类组件放到某个GameObject 上,可以看到在编辑器环境下其多了一个按钮

点击按钮,可以看到下面的输出,说明运行正确




如果本篇文章对您有所帮助,您可以通过微信(左)或支付宝(右)对作者进行打赏!


上一篇     下一篇