Unity編輯器類

添加方法到相應(yīng)的菜單欄
using UnityEngine;
using UnityEditor;
public class Tools {
[MenuItem("Tools/Test")]//通過MenuItem[“路徑”]添加到相應(yīng)菜單欄
static void Test() {//編輯器類的方法必需是static修飾,方法名是唯一的。
Debug.Log("Test");
}
}
編輯器中的分組
[MenuItem("Tools/Show Info",false,1)]
//其中有三個參數(shù),第一個為路徑,第二個為是否啟用菜單項(xiàng),第三個為優(yōu)先級
** 系統(tǒng)默認(rèn)的優(yōu)先級是1000
分組的條件是第三個參數(shù)相差11,這個數(shù)值是為變的,固定要相差這么多

第二個參數(shù)的使用:
//TestDeleteBool方法為驗(yàn)證TestDelete方法是否可以運(yùn)行。
//方法名不同,第二個參數(shù)要為true,其它要保持一致辭
[MenuItem("GameObject/Test Delete", true, 10)]
static bool TestDeleteBool()
{
if (Selection.objects.Length > 0)
{
return true;
}
else
{
return false;
}
}
[MenuItem("GameObject/Test Delete", false, 10)]
static void TestDelete() {
foreach (Object o in Selection.objects)
{
Undo.DestroyObjectImmediate(o);
}
}
添加方法到組件的右鍵菜單欄
using UnityEngine;
using UnityEditor;
public class PlayerEditor {

[MenuItem("CONTEXT/Rigidbody/Clear")]//CONTEXT/加組件名/加按扭名
static void ClearMassAndGravity(MenuCommand cmd)
{//MenuCommand為當(dāng)前操作的組件
    Rigidbody rgd = cmd.context as Rigidbody;
    rgd.mass = 0;//更改組件上的變量值
    rgd.useGravity = false;
}

}
Selection(選擇)類的應(yīng)用
[MenuItem("Tools/Show Info",false,1)]
static void ShowInfo() {
Debug.Log(Selection.activeGameObject.name);//多選時只會得到第一個選擇的物體(只在Hierarchy面板中有效)
}
具體參見API
撤消的類Undo
[MenuItem("GameObject/Test Delete", false, 10)]
static void TestDelete() {
foreach (Object o in Selection.objects)
{
Undo.DestroyObjectImmediate(o);//利用Undo進(jìn)行刪除操作是可以撤消的
}
}
給菜單添加快捷鍵
%代表Ctrl,#代表Shift,&代表alt
[MenuItem("Tools/Test t", false, 10)]//純字母加字母就可以添加快捷鍵
[MenuItem("Tools/Test %t", false, 10)]//組合鍵加字母添加快捷鍵
關(guān)于ContextMenu和ContextMenuItem的使用
ContextMenu非UnityEditor下,直接寫在非系統(tǒng)組件上的右鍵按扭。
[ContextMenu("SetColor")]//傳入一個方法名
void SetColor() {
flashColour = Color.green;
}
ContextMenuItem在腳本中給變量添加右鍵菜單按扭
[ContextMenuItem("AddHp", "AddHp")]//第一個參數(shù)為按扭名,第二個為方法名,方法一定要存在
public int startingHealth = 100;
void AddHp()
{
startingHealth += 20;
}
創(chuàng)建窗口
創(chuàng)建窗口要繼承ScriptableWizard

ScriptableWizard.DisplayWizard<Windows>("修改窗口","Change Value");//第一個參數(shù)為標(biāo)題,第二個參數(shù)為按扭名稱
添加檢測方法
//檢測Create按扭的點(diǎn)擊,方法名必須是OnWizardCreate
void OnWizardCreate() {
Debug.Log("Done");
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,377評論 0 17
  • 原文地址:http://www.android100.org/html/201606/06/241682.html...
    AFinalStone閱讀 1,321評論 0 1
  • 《向水投降》 我想順從每一片流云 在我倦怠孤獨(dú)的片刻 與我有關(guān)的瞬間,逐漸分明 雨水從來不會說出答案 它臨幸一只狗...
    幽明m閱讀 260評論 7 2
  • 從知道你在我的肚子里扎根至今,時間過的是那么快又那么慢,今天已經(jīng)是28周了。我的的肚子從微微隆起到現(xiàn)在路人一眼能看...
    Rachel蕭蕭閱讀 215評論 0 0

友情鏈接更多精彩內(nèi)容