สร้างโลกของคุณเอง
การโต้ตอบกับวัตถุ

การสร้างวัตถุที่ติดตามตัวละคร

3min

ด้วยการใช้คอมโพเนนต์ NavMeshAgent คุณสามารถสร้างวัตถุ AI ที่ติดตามตัวละคร ZEPETO ได้

ในคู่มือนี้ เราจะสร้างวัตถุ Pet ที่ติดตามตัวละครของเรา

การสร้างวัตถุ Pet

1

เปิดหน้าต่าง Navigation (Obsolete)

Document image


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

2

กำหนดพื้นที่ที่วัตถุ Pet สามารถเคลื่อนที่ได้

Document image


ในหน้าต่าง Navigation (Obsolete) ให้คลิกแท็บ Object จากนั้นเลือกพื้น ผนัง หรือวัตถุกีดขวางจาก Hierarchy และเพิ่มเข้าไปใน Object

  • สิ่งนี้ทำให้วัตถุ Pet รับรู้พื้นที่ที่สามารถเดินได้หรือสิ่งกีดขวาง

อย่าลืมตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายที่ Navigation Static แล้ว

✏️ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ NavMesh กรุณาดูวิดีโอด้านล่าง


3

สร้าง NavMesh

Document image


คลิกแท็บ Bake แล้วกดปุ่ม Bake ที่ด้านล่างเพื่อสร้าง NavMesh

4

เพิ่ม NavMeshAgent

เลือกวัตถุ Pet จาก Hierarchy แล้วไปที่ Inspector เพื่อเพิ่มคอมโพเนนต์ NavMeshAgent

  • Agent ในที่นี้หมายถึงวัตถุ Pet ที่เคลื่อนที่ด้วยระบบนำทางของ NavMesh

คุณสามารถปรับขนาด ความเร็วในการเคลื่อนที่ ความเร็วในการหมุน ความเร่ง และระดับความสูงที่ถือว่าเป็นสิ่งกีดขวางได้

✏️ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ NavMeshAgent ดูลิงค์นี้

Document image


ในตัวอย่างนี้ เราตั้งค่า Stopping Distance ของ NavMeshAgent เป็น 3 เพื่อให้ Pet หยุดเมื่ออยู่ห่างจากผู้เล่น 3 หน่วย

5

สร้างสคริปต์ PetController

ในหน้าต่าง Project ให้คลิกปุ่ม + > ZEPETO > TypeScript เพื่อสร้างสคริปต์ใหม่ จากนั้นเปลี่ยนชื่อเป็น PetController

เปิดสคริปต์แล้วคัดลอกโค้ดด้านล่างไปวาง

TypeScript


คำอธิบายสคริปต์

  • เมื่อเริ่มสคริปต์ ระบบจะตั้งค่า _target เป็นตัวละคร ZEPETO ของคุณ
  • ในฟังก์ชัน Update จะใช้ SetDestination ของ NavMeshAgent เพื่อกำหนดตำแหน่งของตัวละครเป็นจุดหมายปลายทางในทุกเฟรม
6

นำสคริปต์ PetController ไปใช้กับวัตถุ Pet

เลือกวัตถุ Pet จาก Hierarchy ไปที่ Inspector แล้วคลิก Add Component > Zepeto Script

จากนั้นลากสคริปต์ PetController ที่สร้างไว้ไปวางในช่อง Script

7

คลิกปุ่มเล่น

Document image


ตอนนี้คุณจะเห็นวัตถุ Pet ติดตามตัวละครของคุณและหลีกเลี่ยงสิ่งกีดขวางอย่างเป็นธรรมชาติ เช่น กำแพง



การสร้าง Pet บนศีรษะตัวละคร

หากคุณต้องการให้ Pet ติดอยู่บนร่างกายของตัวละคร แทนที่จะติดตาม ก็สามารถใช้วิธีการยึดวัตถุได้

✏️ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดวัตถุ โปรดดูคู่มือ การแนบวัตถุกับตัวละคร ZEPETO



1

สร้างสคริปต์ AttachPetController

ใน Project ให้คลิก + > ZEPETO > TypeScript แล้วตั้งชื่อสคริปต์ว่า AttachPetController

เปิดสคริปต์แล้ววางโค้ดด้านล่าง

TypeScript


คำอธิบาย

  • เมื่อสคริปต์เริ่มทำงาน ระบบจะค้นหา Local Player และ Animator ของตัวละคร
  • จากนั้นจะระบุส่วนของร่างกายที่เลือกไว้ใน bodyBone และระบุตำแหน่ง
  • วัตถุ Pet จะถูกสร้างขึ้น (Instantiate) ที่ตำแหน่งนั้น และตั้งค่า parent เป็นส่วนของร่างกายที่พบ
2

นำสคริปต์ AttachPetController ไปใช้กับวัตถุใหม่

ใน Hierarchy คลิก + > Create Empty เพื่อสร้างวัตถุใหม่ และตั้งชื่อว่า AttachPetController

จากนั้นไปที่ Inspector คลิก Add Component > Zepeto Script และลากสคริปต์ไปใส่ในช่อง Script

ลากวัตถุ Pet ไปยังช่อง Pet และเลือกส่วนของร่างกายจากเมนูแบบดรอปดาวน์ของ bodyBone เพื่อให้ Pet ยึดติด

Document image


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