[UNITY] [Editor] เทคนิคการเขียน Editor ภาค 2 by

31
Jul
0

จากคราวที่แล้ว เรื่อง priority ของ MenuItem วันนี้เราจะมาสอนเรื่อง Validate Function
ของ MenuItem กันนะครับ

รู้หมือไร่?? MenuItem นั้นสามารถ Disable Menu หรือ Enable Menu ตามเงื่อนไขต่างๆ
ที่เรากำหนดไว้ใน Validate Function ของแต่ละ Item นั่นเอง วิธีใช้ก็ดังนี้เลยครับ


[MenuItem("Test/Menu1", false, 1)]
static void Menu1() { }
[MenuItem("Test/Menu2", false, 1)]
static void Menu2() { }
[MenuItem("Test/Menu3", false, 51)]
static void Menu3() { }
[MenuItem("Test/Menu4", false, 101)]
static void Menu4() { }

นี่คือ code ของคราวที่แล้ว แล้วถ้าเราอยากให้ Menu4 นั่น Enable ก็ต่อเมื่อเราเลือก GameObject
ไว้ (การเลือกนี้จะถือเอา Object ที่แสดงอยู่ใน Inspector ในขณะนั้น) ก็ให้เราเพิ่ม code นี้ลงไป

[MenuItem("Test/Menu4", true, 101)]
static bool Menu4Validator()
{
return Selection.activeGameObject != null;
}

จะได้ผลลัพท์ดังรูป
1

จากนั้นจะเอา GameObject นั้นไปใช้ยังไงก็ต้มยำทำแกงได้ตามสบายเลยครับ ยกตัวอย่างเช่น
แก้ Function Menu4 ให้เป็นแบบนี้

[MenuItem("Test/Menu4", false, 101)]
static void Menu4()
{
Selection.activeGameObject.name = "Test";
}

ถ้าเราเลือก GameObject ไว้ แล้วกดที่ Menu4 GameObject นั้นก็จะถูกเปลี่ยนชื่อให้เป็น Test ในบัดดล
2

ไว้คราวหน้าจะมาสอน trick เด็ดๆเกี่ยวกับ Editor อีกนะคร้าฟฟฟฟฟ

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post