ทำ Selection ด้วย Bounding box

opengl_tutorial_bounding_box

สวัสดีครับ กลับมาพบกับ Tip ดีๆด้วย Unity กันอีกครั้งนะครับ วันนี้ผมมี Asset เล็กๆมาแนะนำเพื่อนๆกันครับ โดย Asset ที่ผมนำมาวันนี้ มีชื่อว่า BoundBoxes ครับ

เพื่อนๆน่าจะเคยเล่นเกมที่มีการเลือก Object ภายในเกม หรือบางทีก็เป็นการคลิกวัตถุต่างๆ ก็อาจจะอยากรู้ว่าวัตถุชิ้นนั้นถูกคลิกแล้วจริงหรือไม่กันมาบ้างใช่ไม๊ล่ะครับ ซึ่งเทคนิคที่ใช้กันทั่วไปก็จะมีตั้งแต่ ทำไฮไลต์วัตถุที่คลิก มีเคอเซ่อมาชี้ หรือทำให้วัตถุชิ้นนั้นขยับ Asset ตัวนี้ก็เป็นอีกวิธีนึงที่เราจะใช้บอกผู้เล่นว่าผู้เล่นได้คลิกวัตถุชิ้นนั้นๆไปแล้ว โดยการสร้างกรอบ Bounding box ขึ้นมาล้อมรอบวัตถุนั้นๆครับ โดยเพื่อนๆสามารถโหลดได้ ที่นี่ ครับ

เมื่อเราโหลดมาแล้ว มาดู Scene ตัวอย่างกันครับ

01

 

จากตัวอย่างถ้าเราคลิกที่ Object ก็จะมี Bounding box ขึ้นมาล้อมรอบครับ

การนำไปใช้จะมี Component สองส่วนหลักๆนะครับ โดยเราแค่ Add component สองตัวนี้ก็ใช้ได้เลยครับ

bbox_BoundBox.cs : เอาสคริปนี้ไปแปะไว้กับ Object ที่ต้องการให้สามารถเกิด Bounding box ได้ครับ

bbox_lineDraw.cs : สคริปนี้แปะไว้ที่กล้องครับ

โดยที่เราสามารถตั้งค่าได้ดังนี้ครับ

02

Collider based – ติ๊กถูกไว้จะเกิด Bounding box ตาม Collider ครับ

Permanent – ติ๊กถูกไว้จะเป็นการคลิกแล้ว Bounding bix จะค้างอยู่ตลอดไปครับ

Line color – ตั้งค่าสีของกล่อง Bounding box ครับ

เพียงเท่านี้ เพื่อนๆก็สามารถที่จะทำ Selection ให้กับ Object ได้ง่ายๆแล้วนะครับ โดย Asset ตัวนี้ ทางผู้ผลิตได้บอกว่าเป็น Mobile friendly ด้วย ดังนั้นสามารถนำไปใช้กับ Android หรือ ios ได้โดยไม่กินทรัพยากรเครื่องมากนักครับ อ้อ แล้วอย่าลืมใส่ Collider ให้กับ Object เพื่อให้สามารถคลิกหรือทัชให้ได้ด้วยนะครับ แล้วพบกันใหม่โอกาสหน้าครับ