---
title: การวัดความสูงของตัวละครของคุณ
slug: world-sdk-guide-th/IpqzvZYmoaIesiFVlxgiP
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

ในคู่มือนี้ เราจะแสดงให้คุณเห็นวิธีการวัดความสูงของตัวละคร ZEPETO ของผู้เล่นท้องถิ่นตามประเภทของร่างกาย.



### ขั้นตอนที่ 1 : เขียนสคริปต์เพื่อดึงค่าความสูงของตัวละคร

เพิ่ม GameObject ลงในฉากและเพิ่มสคริปต์ตัวอย่าง CharacterHeight ด้านล่างนี้.

```typescript
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 : รัน

เมื่อคุณรันโดยการคลิกปุ่มเล่น คุณจะเห็นค่าความสูงของตัวละครในคอนโซลล็อก.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-lpGLOsNjPVzJwPLTSC0VP-20240904-102420.png)



:::hint{type="success"}
👍 **เคล็ดลับ**

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

:::hint{type="info"}
**📘 SkinnedMeshRenderer.localBounds**

- [https://docs.unity3d.com/Manual/class-SkinnedMeshRenderer.html](https://docs.unity3d.com/Manual/class-SkinnedMeshRenderer.html)
- [https://docs.unity3d.com/2020.3/Documentation/ScriptReference/SkinnedMeshRenderer-localBounds.html](https://docs.unity3d.com/2020.3/Documentation/ScriptReference/SkinnedMeshRenderer-localBounds.html)
:::

