สร้างโลกของคุณเอง
การโต้ตอบกับวัตถุ
การสร้างวัตถุที่ติดตามตัวละคร
3นาที
ด้วยการใช้คอมโพเนนต์ navmeshagent คุณสามารถสร้างวัตถุ ai ที่ติดตามตัวละคร zepeto ได้ ในคู่มือนี้ เราจะสร้างวัตถุ pet ที่ติดตามตัวละครของเรา การสร้างวัตถุ 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 เปิดสคริปต์แล้วคัดลอกโค้ดด้านล่างไปวาง import { transform } from 'unityengine' import { navmeshagent } from 'unityengine ai'; import { zepetoplayers } from 'zepeto character controller' import { zepetoscriptbehaviour } from 'zepeto script' import { worldservice } from 'zepeto world'; export default class petcontroller extends zepetoscriptbehaviour { private target transform; private navmeshagent navmeshagent; start() { this navmeshagent = this getcomponent\<navmeshagent>(); zepetoplayers instance onaddedlocalplayer addlistener(() => { this target = zepetoplayers instance getplayer(worldservice userid) character transform; }) } update() { if (this target == null) { return; } this navmeshagent setdestination(this target position); } } คำอธิบายสคริปต์ เมื่อเริ่มสคริปต์ ระบบจะตั้งค่า target เป็นตัวละคร zepeto ของคุณ ในฟังก์ชัน update จะใช้ setdestination ของ navmeshagent เพื่อกำหนดตำแหน่งของตัวละครเป็นจุดหมายปลายทางในทุกเฟรม นำสคริปต์ petcontroller ไปใช้กับวัตถุ pet เลือกวัตถุ pet จาก hierarchy ไปที่ inspector แล้วคลิก add component > zepeto script จากนั้นลากสคริปต์ petcontroller ที่สร้างไว้ไปวางในช่อง script คลิกปุ่มเล่น ตอนนี้คุณจะเห็นวัตถุ pet ติดตามตัวละครของคุณและหลีกเลี่ยงสิ่งกีดขวางอย่างเป็นธรรมชาติ เช่น กำแพง การสร้าง pet บนศีรษะตัวละคร หากคุณต้องการให้ pet ติดอยู่บนร่างกายของตัวละคร แทนที่จะติดตาม ก็สามารถใช้วิธีการยึดวัตถุได้ ✏️ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดวัตถุ โปรดดูคู่มือ การแนบวัตถุกับตัวละคร zepeto docid\ hoje6kdwjoddw48r0mqb0 สร้างสคริปต์ attachpetcontroller ใน project ให้คลิก + > zepeto > typescript แล้วตั้งชื่อสคริปต์ว่า attachpetcontroller เปิดสคริปต์แล้ววางโค้ดด้านล่าง import { zepetoscriptbehaviour } from 'zepeto script'; import { zepetocharacter, zepetoplayers } from 'zepeto character controller'; import { transform, animator, gameobject, humanbodybones, object } from 'unityengine'; export default class attachpetcontroller extends zepetoscriptbehaviour { public pet gameobject; public bodybone humanbodybones; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { const localcharacter = zepetoplayers instance localplayer zepetoplayer character; const animator animator = localcharacter zepetoanimator; const bone transform = animator getbonetransform(this bodybone); object instantiate(this pet, bone) as gameobject; }); } } คำอธิบาย เมื่อสคริปต์เริ่มทำงาน ระบบจะค้นหา local player และ animator ของตัวละคร จากนั้นจะระบุส่วนของร่างกายที่เลือกไว้ใน bodybone และระบุตำแหน่ง วัตถุ pet จะถูกสร้างขึ้น (instantiate) ที่ตำแหน่งนั้น และตั้งค่า parent เป็นส่วนของร่างกายที่พบ นำสคริปต์ attachpetcontroller ไปใช้กับวัตถุใหม่ ใน hierarchy คลิก + > create empty เพื่อสร้างวัตถุใหม่ และตั้งชื่อว่า attachpetcontroller จากนั้นไปที่ inspector คลิก add component > zepeto script และลากสคริปต์ไปใส่ในช่อง script ลากวัตถุ pet ไปยังช่อง pet และเลือกส่วนของร่างกายจากเมนูแบบดรอปดาวน์ของ bodybone เพื่อให้ pet ยึดติด คลิกปุ่มเล่นเพื่อดูว่า pet ปรากฏบนส่วนของร่างกายที่คุณเลือก