การวัดความสูงของตัวละครของคุณ
3 นาที
ในคู่มือนี้ เราจะแสดงให้คุณเห็นวิธีการวัดความสูงของตัวละคร ZEPETO ของผู้เล่นท้องถิ่นตามประเภทของร่างกาย.
ขั้นตอนที่ 1 : เขียนสคริปต์เพื่อดึงค่าความสูงของตัวละคร
เพิ่ม GameObject ลงในฉากและเพิ่มสคริปต์ตัวอย่าง CharacterHeight ด้านล่างนี้.
import { Debug, HumanBodyBones, Vector3, WaitForEndOfFrame } from 'UnityEngine';
import { LocalPlayer, ZepetoPlayers, ZepetoPlayer, KnowSockets } from 'ZEPETO.Character.Controller';
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
export default class CharacterHeight extends ZepetoScriptBehaviour {
Start() {
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
let _player: LocalPlayer = ZepetoPlayers.instance.LocalPlayer;
this.StartCoroutine(this.CoGetZepetoHeight(_player.zepetoPlayer));
});
}
*CoGetZepetoHeight(zepeto: ZepetoPlayer) {
// ใช้ WaitForEndOfFrame เพื่อให้ได้ตำแหน่งของข้อต่อของตัวละครอย่างแม่นยำ
yield new WaitForEndOfFrame();
// รับตำแหน่งของหัว
const headPosition = zepeto.character.GetSocket(KnowSockets.HEAD_UPPER).position;
// รับตำแหน่งของเท้าซ้าย
const leftFootPosition = zepeto.character.ZepetoAnimator.GetBoneTransform(HumanBodyBones.LeftFoot).position;
// รับตำแหน่งของเท้าขวา
const rightFootPosition = zepeto.character.ZepetoAnimator.GetBoneTransform(HumanBodyBones.RightFoot).position;
// คำนวณจุดกึ่งกลางระหว่างเท้าทั้งสอง
const characterCenter = Vector3.Lerp(leftFootPosition, rightFootPosition, 0.5);
// คำนวณระยะห่างระหว่างหัวและจุดกึ่งกลางของตัวละคร
const characterHeight = Vector3.Distance(headPosition, characterCenter);
console.log(`ความสูงของตัวละครจากพื้น: ${characterHeight}`);
}
}
คำอธิบายสคริปต์
- *CoGetZepetoHeight(zepeto: ZepetoPlayer)
- ใช้ GetSocket เพื่อรับค่าตำแหน่งของข้อต่อหัวของตัวละคร
- เพื่อรับค่าตำแหน่งของจุดกึ่งกลางด้านล่างของตัวละคร ให้ใช้ GetBoneTransform เพื่อรับค่าตำแหน่งของเท้าทั้งสองของตัวละคร
- ใช้ Vector3.Lerp เพื่อรับค่าตำแหน่งกึ่งกลางด้านล่างของตัวละคร
- รับค่าความสูงของตัวละครโดยใช้ค่าตำแหน่งของข้อต่อหัวของตัวละครและค่าตำแหน่งกึ่งกลางด้านล่าง
ขั้นตอนที่ 2 : รัน
เมื่อคุณรันโดยการคลิกปุ่มเล่น คุณจะเห็นค่าความสูงของตัวละครในคอนโซลล็อก.

👍 เคล็ดลับ
- วิธีการวัดความสูงในตัวอย่างคือการวัดความสูงของตัวละครโดยใช้ค่าความสูงของ HeadSocket.
- หากคุณต้องการวัดตำแหน่งด้านบนโดยการสร้างโมเดลหัวของตัวละคร หมวก และอุปกรณ์เสริม โปรดดูที่ลิงก์ต่อไปนี้ :