การสร้างวัตถุที่ติดตามตัวละคร
ด้วยการใช้คอมโพเนนต์ NavMeshAgent คุณสามารถสร้างวัตถุ AI ที่ติดตามตัวละคร ZEPETO ได้
ในคู่มือนี้ เราจะสร้างวัตถุ Pet ที่ติดตามตัวละครของเรา
เปิดหน้าต่าง Navigation (Obsolete)

ไปที่เมนูด้านบนของ Unity แล้วคลิก Window > AI > Navigation (Obsolete) เพื่อเปิดหน้าต่าง Navigation (Obsolete)
กำหนดพื้นที่ที่วัตถุ Pet สามารถเคลื่อนที่ได้

ในหน้าต่าง Navigation (Obsolete) ให้คลิกแท็บ Object จากนั้นเลือกพื้น ผนัง หรือวัตถุกีดขวางจาก Hierarchy และเพิ่มเข้าไปใน Object
- สิ่งนี้ทำให้วัตถุ Pet รับรู้พื้นที่ที่สามารถเดินได้หรือสิ่งกีดขวาง
อย่าลืมตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายที่ Navigation Static แล้ว
✏️ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ NavMesh กรุณาดูวิดีโอด้านล่าง
สร้าง NavMesh

คลิกแท็บ Bake แล้วกดปุ่ม Bake ที่ด้านล่างเพื่อสร้าง NavMesh
เพิ่ม NavMeshAgent
เลือกวัตถุ Pet จาก Hierarchy แล้วไปที่ Inspector เพื่อเพิ่มคอมโพเนนต์ NavMeshAgent
- Agent ในที่นี้หมายถึงวัตถุ Pet ที่เคลื่อนที่ด้วยระบบนำทางของ NavMesh
คุณสามารถปรับขนาด ความเร็วในการเคลื่อนที่ ความเร็วในการหมุน ความเร่ง และระดับความสูงที่ถือว่าเป็นสิ่งกีดขวางได้
✏️ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ NavMeshAgent ดูลิงค์นี้

ในตัวอย่างนี้ เราตั้งค่า Stopping Distance ของ NavMeshAgent เป็น 3 เพื่อให้ Pet หยุดเมื่ออยู่ห่างจากผู้เล่น 3 หน่วย
สร้างสคริปต์ PetController
ในหน้าต่าง Project ให้คลิกปุ่ม + > ZEPETO > TypeScript เพื่อสร้างสคริปต์ใหม่ จากนั้นเปลี่ยนชื่อเป็น PetController
เปิดสคริปต์แล้วคัดลอกโค้ดด้านล่างไปวาง
คำอธิบายสคริปต์
- เมื่อเริ่มสคริปต์ ระบบจะตั้งค่า _target เป็นตัวละคร ZEPETO ของคุณ
- ในฟังก์ชัน Update จะใช้ SetDestination ของ NavMeshAgent เพื่อกำหนดตำแหน่งของตัวละครเป็นจุดหมายปลายทางในทุกเฟรม
นำสคริปต์ PetController ไปใช้กับวัตถุ Pet
เลือกวัตถุ Pet จาก Hierarchy ไปที่ Inspector แล้วคลิก Add Component > Zepeto Script
จากนั้นลากสคริปต์ PetController ที่สร้างไว้ไปวางในช่อง Script
คลิกปุ่มเล่น

ตอนนี้คุณจะเห็นวัตถุ Pet ติดตามตัวละครของคุณและหลีกเลี่ยงสิ่งกีดขวางอย่างเป็นธรรมชาติ เช่น กำแพง
หากคุณต้องการให้ Pet ติดอยู่บนร่างกายของตัวละคร แทนที่จะติดตาม ก็สามารถใช้วิธีการยึดวัตถุได้
✏️ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดวัตถุ โปรดดูคู่มือ การแนบวัตถุกับตัวละคร ZEPETO
สร้างสคริปต์ AttachPetController
ใน Project ให้คลิก + > ZEPETO > TypeScript แล้วตั้งชื่อสคริปต์ว่า AttachPetController
เปิดสคริปต์แล้ววางโค้ดด้านล่าง
คำอธิบาย
- เมื่อสคริปต์เริ่มทำงาน ระบบจะค้นหา Local Player และ Animator ของตัวละคร
- จากนั้นจะระบุส่วนของร่างกายที่เลือกไว้ใน bodyBone และระบุตำแหน่ง
- วัตถุ Pet จะถูกสร้างขึ้น (Instantiate) ที่ตำแหน่งนั้น และตั้งค่า parent เป็นส่วนของร่างกายที่พบ
นำสคริปต์ AttachPetController ไปใช้กับวัตถุใหม่
ใน Hierarchy คลิก + > Create Empty เพื่อสร้างวัตถุใหม่ และตั้งชื่อว่า AttachPetController
จากนั้นไปที่ Inspector คลิก Add Component > Zepeto Script และลากสคริปต์ไปใส่ในช่อง Script
ลากวัตถุ Pet ไปยังช่อง Pet และเลือกส่วนของร่างกายจากเมนูแบบดรอปดาวน์ของ bodyBone เพื่อให้ Pet ยึดติด

คลิกปุ่มเล่นเพื่อดูว่า Pet ปรากฏบนส่วนของร่างกายที่คุณเลือก