Unity编辑器扩展:ScriptableWizard窗口
先上效果图:
具体代码如下:
public class SimpleWizard : ScriptableWizard { public GameObject test; [MenuItem("GameObject/SimpleWizard")] static void Init() { ScriptableWizard.DisplayWizard<SimpleWizard>("TestWizard", "确定", "应用"); } /// <summary> /// 条件限制,不满足条件按钮不亮 /// </summary> void OnWizardUpdate() { helpString = "窗口介绍"; isValid = (test != null); } /// <summary> /// 点击应用调用,不会关闭窗口 /// </summary> void OnWizardOtherButton() { Debug.Log("Apply"); ApplySet(); } /// <summary> /// 点击确定调用,会关闭窗口 /// </summary> void OnWizardCreate() { Debug.Log("Create"); ApplySet(); } public void ApplySet() { //要执行的操作 } }
1,Init函数
函数名不一定非要是Init,只需要进行MenuItem标记即可,在对应路径下点开会多一个选项。
DisplayWizard函数的泛型需要选择当前类作为目标类,三个参数分别是:标题,确定按钮,应用按钮。(不加第三个参数没有应用按钮)
2,OnWizardUpdate
isValid用于条件判断,只有满足条件,按钮才会亮起。窗口中的值改变时触发
3,OnWizardOtherButton
点击应用按钮触发,不会关闭当前窗口
4,OnWizardCreate
点击确定按钮触发,点完关闭当前窗口