unity指令碼編輯器(一)
在選單欄新增按鈕
新建指令碼,無需繼承mono,start update方法,引用名稱空間usingUnityEditor;
定義按鈕
選單欄顯示名稱/按鈕名稱, MenuItem可以在任何指令碼內使用
[MenuItem ("Testbtn/test/test1")]
static void test0()
{
Debug.Log("測試0,,");
}
[MenuItem("Testbtn/test/test2")] //設定一個按鈕都要新增對應的方法 static void test1() //名字不能相同,以上兩種設定了同意父層級test下的兩個按鈕 { Debug.Log("測試2,,"); }
我們發現unity會對按鈕有分類,用橫線分開,自己設定的方式如下:
[MenuItem("Testbtn/test/test2", false,1)]
第三個引數為顯示順序,值越小就越靠上,當相鄰兩個按鈕的值相差大於11就會分類,用橫線分開
在元件右鍵內新增按鈕
[MenuItem("CONTEXT/test/UnLog",false,1)]//context大寫,元件名,指令碼名
[MenuItem("CONTEXT/Rigidbody/Initdefult")]//右鍵rigidbody元件,自行設定初始 static void test3(MenuCommand cmd)//menucommand 是當前正在操作的元件,不需要傳參 { Rigidbody rigi = cmd.context as Rigidbody;//as比用括號更溫和,失敗時返回空值 rigi.useGravity = false; //不適用重力,摩擦力為0 rigi.mass = 0; } foreach (GameObject item in Selection .objects )//對選中物體操作 { Debug.Log(item.name); GameObject.DestroyImmediate (item);//刪除選中物體,無法撤銷 //Undo.DestroyObjectImmediate(item);//可撤銷的刪除 } }
選單欄新增快捷鍵 %代表Ctrl #代表shift &代表alt
[MenuItem("Testbtn/test/test1 _t")]按下t就可以執行按鈕對應操作
[MenuItem ("Testbtn/test/test1&t")]按下alt+t執行
選單項是否啟動
第二個引數,對應方法為驗證方法,值為true,需要返回一個bool值,為true這可以點選反之則不
能,要路徑一致,僅作判斷,當返回true,相同路徑的按鈕即可點選
[MenuItem("Testbtn/test/test2", true ,1)]//當show()方法返回true,test2方可點選 static bool show() { if (Input.GetKey(KeyCode.A)) return true; return false; } [MenuItem("Testbtn/test/test2", false,1)] static bool test2() { Debug.Log("測試2,,"); }
ContextMenu 在自己的指令碼中新增右鍵按鈕,在指令碼內,方便訪問該指令碼的屬性等
可以定義上下文選單,和使用 MenuItem 並以“ Context/ 。。”定義選單一樣這個屬性不同的是,你能給指定的元件定義預設的上下文選單項,然而使用 MeneItem 只是為了擴充套件現有的元件選單,比如引擎預設的元件。public class NameBehaviour : MonoBehaviour
{
public string Name;
[ContextMenu("Reset Name")]
private static void ResetName()
{
Name = string.Empty;
}
}
ContextMenuItem 給指令碼屬性新增右鍵,
被新增到了一個欄位上沒有方法,所有它接受兩個引數:一個用於顯示選單項的名字,一個用於指定一個當選單被選中時要呼叫的例項方法。
public class NameBehaviour : MonoBehaviour
{ // 按鈕名字 方法名字
[ContextMenuItem("Randomize Name", "Randomize")]
public string Name;
private void Randomize()
{
Name = "Some Random Name";
}
}
上面程式碼的結果顯示了當在欄位上單擊右鍵時彈出的選單項:
下載文件點選這裡 https://download.csdn.net/download/nt_xs_j/10503003