No.1 給個官方參考鏈接MenuItem。
No.2 編寫如下代碼。
[MenuItem("GameObject/Dosomething", false, 11)]
static void DoSomething()
{
//dosomething
}
No.3 得到當(dāng)前選擇的對象
[MenuItem("GameObject/Dosomething", false, 11)]
static void DoSomething()
{
Transform []transforms = Selection.GetTransforms (SelectionMode.Assets);
Debug.Log (transforms.Length);
}
No.4 操作選擇對象注意事項
Undo操作
- Undo.RecordObject(s)記錄Object的狀態(tài)
- Undo.AddComponent 要添加Component的時候使用,可以撤銷掉新加的Component
- Undo.RegisterCreatedObjectUndo 新建Object的時候使用,可以撤銷新建的物體
- Undo.DestroyObjectImmediate 要刪除Object的時候使用,可以撤銷刪除操作
- Undo.SetTransformParent 修改Transform的Parent的時候使用,可以恢復(fù)層次結(jié)構(gòu)
[MenuItem("GameObject/Dosomething", false, 11)]
static void DoSomething()
{
Transform []transforms = Selection.GetTransforms (SelectionMode.Assets);
GameObject tg;
if ((tg = GameObject.Find ("EditorParents")) == null) {
tg = new GameObject ("EditorParents");
Undo.RegisterCreatedObjectUndo (tg, "clone a tg");
}
for (int i = 0; i < transforms.Length; i++) {
Undo.SetTransformParent (transforms [i], tg.transform, "Trans");
}
}