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();
}
}