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

31
Jul
0

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

จากคราวที่แล้ว เรื่อง 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;
}

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

จากนั้นจะเอา GameObject นั้นไปใช้ยังไงก็ต้มยำทำแกงได้ตามสบายเลยครับ ยกตัวอย่างเช่น
แก้ Function Menu4 ให้เป็นแบบนี้
[MenuItem("Test/Menu4", false, 101)]
static void Menu4()
{
Selection.activeGameObject.name = “Test”;
}
ถ้าเราเลือก GameObject ไว้ แล้วกดที่ Menu4 GameObject นั้นก็จะถูกเปลี่ยนชื่อให้เป็น Test ในบัดดล

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

Tagged as:

Creating Skill State with Unity Animator by

13
Jul
0

Sorry, this entry is only available in ไทย.

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

30
Jun
0

หลังจากใช้ UNITY กันมาซักพักแล้ว วันนี้เรามาเรียนรู้เรื่องที่ทำให้ชีวิต ง๊ายง่าย กันมากขึ้นดีกว่า
นั่นก็คือ การเขียน Editor นั่นเอง แต่เราไม่ได้จะมาเรียนการเขียน Editor กากๆ พื้นๆนะ
เราจะมาเรียนเรื่องที่มันลึกขึ้นอีกนิด เทพขึ้นอีกหน่อย ให้ชีวิต ดี๊ดี ขึ้นอีกเยอะๆกันดีกว่า

เรื่องแรกเลยก็คือ เรื่องของเส้นคั่น ในตัวเลือกต่างๆของ Editor เคยสงสัยกันไหมว่า เอะทำยังไง
ให้มันมีเส้นคั่นโผล่ออกมา แล้วมีหลายเส้นได้ไหม แล้วมีกฏการเขียนยังไงให้มันมีเส้นคั่นขึ้นมา คืออย่างงี้ครับ
คำตอบก็คือ คำสั่ง MenuItem() เนี่ยมันมี พารามิเตอร์ ที่ชื่อว่า priority อยู่ครับ และมันก็มีกฏเล็กๆน้อย
สำหรับ พารามิเตอร์ ตัวนี้นั่นก็คือ มันจะเรียงลำดับ Item ใน Menu จาก priority น้อยไปหามาก
และแบ่งกลุ่มให้หากมี Item ที่มี priority เดียวกัน และจะสร้างเส้นคั่นให้ ทุกๆ 50 priority ครับ
อ่านแล้ว งงๆ กันใช่ไหมครับ มาดูตัวอย่างกันดีกว่า

[MenuItem("Test/Menu1", false, 1)]
static void Menu1(){}

[MenuItem("Test/Menu2", false, 1)]
static void Menu2(){}

[MenuItem("Test/Menu3", false, 51)]
static void Menu3(){}

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

และหากเราเพิ่ม code นี้ลงไปท้าย code เดิม
[MenuItem("Test/Menu4", false, 101)]
static void Menu4() { }
จะได้ผลลัพท์ดังรูป

เป็นยังไงบ้างครับสำหรับ trick เล็กๆน้อยๆ ของการเขียน Editor ไว้คราวหน้าจะมี trick อื่นๆมาฝากอีกครับ

Tagged as:

Avoid using public List if you want to assign its value with code by

30
Jun
0

Sorry, this entry is only available in ไทย.

Tagged as: ,

[Unity3D] Add Game Center to your game by

30
Jun
0

Sorry, this entry is only available in ไทย.

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน