การแนบวัตถุกับตัวละคร ZEPETO
แนบวัตถุเข้ากับตัวละคร ZEPETO เพื่อให้เมื่อ ตัวละครเคลื่อนที่ วัตถุก็เคลื่อนที่ไปด้วย

ขั้นตอนที่ 1 : เตรียม Prefab วัตถุ
ก่อนอื่น คุณต้องเปลี่ยนวัตถุของคุณให้เป็น Prefab. สร้างวัตถุ ดึงมันไปที่โฟลเดอร์ Asset และทำให้มันเป็น Prefab.

ขั้นตอนที่ 2 : สคริปต์เพื่อแนบวัตถุเข้ากับส่วนเฉพาะของตัวละคร
- นำรหัสการสร้างตัวละคร ZEPETO ไปใช้ใน Scene เป็นค่าเริ่มต้น
📘 โปรดดูคู่มือต่อไปนี้.[สร้างตัวละคร ZEPETO]
ขั้นตอน 2-1 : เขียนสคริปต์
1) สร้างลำดับชั้น > สร้างวัตถุเปล่าและเปลี่ยนชื่อเป็น AttachObject.
2) สร้างโปรเจกต์ > สร้าง > ZEPETO > TypeScript และเปลี่ยนชื่อเป็น AttachObject.
3) เขียนสคริปต์ตัวอย่างตามด้านล่าง.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { ZepetoCharacter, ZepetoPlayers } from 'ZEPETO.Character.Controller';
import { Transform, Animator, GameObject, HumanBodyBones, Object } from 'UnityEngine';
export default class AttachObject extends ZepetoScriptBehaviour {
// วัตถุ prefab ที่จะติดอยู่บนร่างกาย
public prefItem: GameObject;
// กระดูกที่จะติดวัตถุ
public bodyBone: HumanBodyBones;
private _localCharacter: ZepetoCharacter;
Start() {
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
// ค้นหาผู้เล่นท้องถิ่นและตั้งค่าให้กับ _localCharacter
this._localCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
// รับส่วนประกอบ animator ของ _localCharacter
const animator: Animator = this._localCharacter.ZepetoAnimator;
// รับตำแหน่งของกระดูกที่จะติดวัตถุ
const bone: Transform = animator.GetBoneTransform(this.bodyBone);
// สร้าง prefab ของวัตถุ
Object.Instantiate(this.prefItem, bone) as GameObject;
});
}
}
- สคริปต์ทำงานตามลำดับดังนี้:
- Start()
- ลงทะเบียนผู้ฟังเหตุการณ์ ZepetoPlayers.instance.OnAddedLocalPlayer ซึ่งจะถูกเรียกเมื่อมีผู้เล่นท้องถิ่นถูกเพิ่มเข้ามา
- ตั้งค่าผู้เล่นท้องถิ่นให้กับตัวแปร _localCharacter
- รับส่วนประกอบ animator ของ _localCharacter, รับตำแหน่งที่ระบุใน bodyBone, และสร้าง prefab ที่ระบุใน prefItem ที่ตำแหน่งนั้น
ขั้นตอนที่ 2-2 : การตั้งค่าตำแหน่งการติดตั้งใน Inspector
1) หลังจากเขียนสคริปต์เสร็จแล้ว ให้เพิ่มสคริปต์ไปยังวัตถุ AttachObject.
2) ใน Inspector ให้กำหนด Pref Item, Body Bone.
- Pref Item คือวัตถุ prefab.
- Body Bone คือสถานที่ที่วัตถุจะถูกสร้างขึ้น.
- เลือก LeftHand เพื่อทำให้ดูเหมือนว่าคุณกำลังถือวัตถุในมือของคุณ.

3) กดปุ่ม Play เพื่อรันและคุณจะเห็นตัวละคร ZEPETO พร้อมวัตถุที่ติดอยู่ที่มือซ้ายของเขา.
ขั้นตอนที่ 3 : ใช้งาน
คุณสามารถติดตั้งวัตถุใด ๆ ไปยังตำแหน่งที่ต้องการของ Body Bone ในลักษณะเดียวกัน.
📘 Unity HumanBodyBones https://docs.unity3d.com/ScriptReference/HumanBodyBones.html
ต่อไปนี้คือตัวอย่างการติดตั้งวัตถุหมอนคอจาก BuildIt ไปยังคอของตัวละครเพื่อให้ดูเหมือนว่าตัวละคร ZEPETO กำลังสวมหมอนคออยู่

- คุณสามารถปรับตำแหน่งและการหมุนของวัตถุให้เหมาะสมเพื่อให้ได้รูปลักษณ์ที่ต้องการ

- ใน Inspector ให้กำหนดวัตถุหมอนคอไปยัง Pref Item และเลือก Neck สำหรับ Body Bone
