【Unity】編輯器基礎擴展二:ScriptableWizard編輯器嚮導窗口

ScriptableWizard編輯器嚮導窗口

當有時候需要動態批量處理一些需求時,可能會用到編輯器嚮導窗口

代碼註釋涉及到的有:

1、創建嚮導窗口
2、點擊固定Create按鈕調用(OnWizardCreate)
3、點擊自定義功能按鈕調用(OnWizardOtherButton)
4、彈出提示通知信息(ShowNotification)
5、幫助文本(helpString)
6、錯誤警告文本(errorString)
7、編輯器模式數據保存(EditorPrefs)
8、選中操作變化時系統調用(OnSelectionChange)

using UnityEditor;
using UnityEngine;

//繼承ScriptableWizard
public class ChangePlayerDialog : ScriptableWizard
{
    //添加選項按鈕,創建編輯器嚮導窗口
    [MenuItem("Tools/Create Player Wizard")]
    static void CreateWizard()
    {
        //創建的嚮導類型爲ChangePlayerDialog類型
        ScriptableWizard.DisplayWizard<ChangePlayerDialog>("ChangePlayerMove", "Change By Value", "Clear");//參數分別是嚮導窗口標題,create按鈕名稱,自定義按鈕名稱
    }

    //顯示在嚮導窗口裏的變量
    public float speedValue = 10;
    public bool canShoot = true;

    //用戶單擊創建按鈕進行調用,固定用法,點擊後向導窗口關閉
    private void OnWizardCreate()
    {
        Debug.Log("Create : Change By Value");
        //一般在這裏做最終的處理
        //比如在這裏可以獲取選中的全部object,再利用嚮導窗口裏填寫的變量批量改變文件數值
    }

    //用戶單擊自定義其他按鈕時進行調用,固定用法,點擊後向導窗口不會關閉
    private void OnWizardOtherButton()//在這裏是一個初始化數據的功能
    {
        Debug.Log("Clear");
        speedValue = 0;
        canShoot = false;
        ShowNotification(new GUIContent("數據已經初始化完畢"));//該功能用來彈出一個小提示通知信息,幾秒後自動消失
    }

    //打開向導或者更改向導裏的內容時進行調用,固定用法
    private void OnWizardUpdate()
    {
        Debug.Log("Change");
        //當在嚮導窗口裏一些操作錯誤或者不規範時,可以通過設置helpString和errorString來進行提示操作人員
        helpString = "文中某某變量填寫規範爲\"XXXX+DDDD+SS\"";
        errorString = "文中某某變量填寫不規範";

        //編輯器模式下,可以使用EditorPrefs進行數據的存取,用法與遊戲運行時PlayerPrefs用法一致
        EditorPrefs.SetFloat("key", speedValue);
        
    }

    //當在工程裏選中操作有變化時進行調用
    private void OnSelectionChange()
    {
        OnWizardUpdate();
    }



}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章