---
title: ZEPETO.Character.Controller
slug: world-sdk-guide-id/zepetocharactercontroller
docTags: 
createdAt: 2026-09-04T06:54:26.854Z
---

| Tipe                                                             | Deskripsi                                                                                                                                                                                                                          |
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ZepetoPlayers](./#zepetoplayers)                                | Class manajer yang dirancang untuk mengontrol pemain ZEPETO sekaligus karakter ZEPETO.                                                                                                                                             |
| [SpawnInfo](./#spawninfo)                                        | Merepresentasikan lokasi spawn dari karakter ZEPETO.                                                                                                                                                                               |
| [ZepetoCharacter](./#zepetocharacter)                            | Merepresentasikan karakter ZEPETO yang dapat dimuat dan dikontrol di dalam ZEPETO World.                                                                                                                                           |
| [CameraData](./#cameradata)                                      | Merepresentasikan konfigurasi awal untuk `ZepetoCamera`.                                                                                                                                                                           |
| [CharacterData](./#characterdata)                                | Merepresentasikan konfigurasi awal untuk `ZepetoCharacter`.                                                                                                                                                                        |
| [ControllerData](./#controllerdata)                              | Merepresentasikan konfigurasi untuk `ZepetoPlayerControl`.                                                                                                                                                                         |
| [FloatingUIData](./#floatinguidata)                              | Class yang bertanggung jawab mengelola pengaturan UI terkait karakter.                                                                                                                                                             |
| [LocalPlayer](./#localplayer)                                    | Class yang dirancang untuk mengelola aksi local player, termasuk pergerakan, kustomisasi kostum, dan interaksi dengan kamera ZEPETO.                                                                                               |
| [ZepetoCamera](./#zepetocamera)                                  | Class kontrol kamera yang dirancang untuk digunakan di dalam ZEPETO Character Controller.                                                                                                                                          |
| [ZepetoPlayer](./#zepetoplayer)                                  | Merepresentasikan pemain ZEPETO.                                                                                                                                                                                                   |
| [ZepetoPlayerControl](./#zepetoplayercontrol)                    | Mengelola kontrol input untuk pemain ZEPETO.                                                                                                                                                                                       |
| [ZepetoCameraControl](./#zepetocameracontrol)                    | Mengelola kontrol kamera di lingkungan ZEPETO, termasuk penanganan input untuk pergerakan dan zoom kamera.                                                                                                                         |
| [CharacterState](./#characterstate)                              | Merepresentasikan status karakter ZEPETO.                                                                                                                                                                                          |
| [CharacterMoveState](./#charactermovestate)                      | Merepresentasikan status pergerakan secara detail dari karakter ZEPETO.                                                                                                                                                            |
| [CharacterJumpState](./#characterjumpstate)                      | Merepresentasikan status lompatan secara detail dari karakter ZEPETO.                                                                                                                                                              |
| [CharacterLandingState](./#characterlandingstate)                | Merepresentasikan status pendaratan secara detail dari karakter ZEPETO.                                                                                                                                                            |
| [KnowSockets](./#knowsockets)                                    | Mendefinisikan sekumpulan titik pemasangan yang dikenal, disebut socket, pada karakter.                                                                                                                                            |
| [MotionState](./#motionstate)                                    | Class untuk mengelola status dan konfigurasi motion karakter.                                                                                                                                                                      |
| [CharacterStateMachine](./#characterstatemachine)                | Class yang bertanggung jawab menyinkronkan animator dengan status karakter dari karakter ZEPETO.                                                                                                                                   |
| [StateMachine](./#statemachine)                                  | `StateMachine` mengelola `States`, `Transitions`, dan `Events`. Dengan memperbarui status sesuai kondisi yang ditentukan dan waktu yang berlalu, class ini memungkinkan pendefinisian dan pengendalian beragam status untuk objek. |
| [StateStatus](./#statestatus)                                    | Merepresentasikan status yang mungkin dari sebuah state di dalam state machine, yang menunjukkan fase siklus hidup state saat ini.                                                                                                 |
| [CustomMotionData](./#custommotiondata)                          | Merepresentasikan konfigurasi kustom untuk motion karakter.                                                                                                                                                                        |
| [CharacterShadow](./#charactershadow)                            | Class yang bertanggung jawab mengelola bayangan karakter ZEPETO.                                                                                                                                                                   |
| [CameraState](./#camerastate)                                    | Merepresentasikan status dari `ZepetoCamera`.                                                                                                                                                                                      |
| [ZepetoScreenStick](./#zepetoscreenstick)                        | Class yang dirancang untuk menangani interaksi stick di lingkungan ZEPETO.                                                                                                                                                         |
| [ZepetoScreenControl](./#zepetoscreencontrol)                    | Class abstrak yang dirancang untuk membuat kontrol UI di lingkungan ZEPETO.                                                                                                                                                        |
| [ZepetoScreenButton](./#zepetoscreenbutton)                      | Class yang dirancang untuk menangani interaksi tombol di lingkungan ZEPETO.                                                                                                                                                        |
| [ZepetoScreenTouchpad](./#zepetoscreentouchpad)                  | Class yang dirancang untuk menangani interaksi touchpad di lingkungan ZEPETO.                                                                                                                                                      |
| [UIZepetoPlayerControl](./#uizepetoplayercontrol)                | Class yang menyediakan kontrol berbasis UI untuk karakter local player.                                                                                                                                                            |
| [InputHelper](./#inputhelper)                                    | Class utilitas yang dirancang untuk membantu penanganan input.                                                                                                                                                                     |
| [EventReceiver](./#eventreceiver)                                | Class yang bertanggung jawab menangani event terkait karakter maupun event umum di dalam ZEPETO World.                                                                                                                             |
| [TransitionBase](./#transitionbase)                              | Class dasar untuk mendefinisikan transisi antar state dalam state machine.                                                                                                                                                         |
| [State](./#state)                                                | Merepresentasikan sebuah state di dalam state machine.                                                                                                                                                                             |
| [Transition](./#transition)                                      | Class generik untuk mendefinisikan transisi antar state dalam state machine.                                                                                                                                                       |
| [ZepetoCharacter.LoadingStatus](./#zepetocharacterloadingstatus) | Status pemuatan karakter ZEPETO.                                                                                                                                                                                                   |
| [PlayerControlMode](./#playercontrolmode)                        | *enum*                                                                                                                                                                                                                             |

## ZepetoPlayers

`class`

Class manajer yang dirancang untuk mengontrol pemain ZEPETO sekaligus karakter ZEPETO.

### Properti

| Nama              | Tipe                                | Deskripsi                                |
| ----------------- | ----------------------------------- | ---------------------------------------- |
| cameraData        | [CameraData](./#cameradata)         | Konfigurasi untuk `ZepetoCamera`.        |
| characterData     | [CharacterData](./#characterdata)   | Konfigurasi untuk `ZepetoCharacter`.     |
| controllerData    | [ControllerData](./#controllerdata) | Konfigurasi untuk `ZepetoPlayerControl`. |
| floatingUIData    | [FloatingUIData](./#floatinguidata) | Pengaturan UI terkait karakter.          |
| instance (static) | [ZepetoPlayers](./#zepetoplayers)   | Instance singleton dari `ZepetoPlayers`. |
| LocalPlayer       | [LocalPlayer](./#localplayer)       | Local player.                            |
| ZepetoCamera      | [ZepetoCamera](./#zepetocamera)     | Kamera ZEPETO.                           |

### Event

| Nama               | Tipe                 | Deskripsi                                             |
| ------------------ | -------------------- | ----------------------------------------------------- |
| OnAddedLocalPlayer | `UnityEvent`         | Event yang terpicu saat instance local player dibuat. |
| OnAddedPlayer      | `UnityEvent<string>` | Event yang terpicu saat instance pemain dibuat.       |
| OnRemovedPlayer    | `UnityEvent<string>` | Event yang terpicu saat instance pemain dihapus.      |

### Metode

### add\_onInitialized

`static add_onInitialized(value: Action) → void`

Menambahkan fungsi handler untuk event yang dipanggil saat `ZepetoPlayers` diinisialisasi.

| Parameter | Tipe     |
| --------- | -------- |
| value     | `Action` |

### remove\_onInitialized

`static remove_onInitialized(value: Action) → void`

Menghapus fungsi handler untuk event yang dipanggil saat `ZepetoPlayers` diinisialisasi.

| Parameter | Tipe     |
| --------- | -------- |
| value     | `Action` |

### HasPlayer

`HasPlayer(id: string) → boolean`

Memeriksa apakah instance pemain yang terkait dengan ID sesi yang ditentukan ada.

| Parameter | Tipe     | Deskripsi |
| --------- | -------- | --------- |
| id        | `string` | ID sesi   |

**Mengembalikan:** `boolean`

### GetPlayer

`GetPlayer(id: string) → ZepetoPlayer`

Mengambil instance pemain yang terkait dengan ID sesi yang ditentukan.

| Parameter | Tipe     | Deskripsi |
| --------- | -------- | --------- |
| id        | `string` | ID sesi   |

**Mengembalikan:** [ZepetoPlayer](./#zepetoplayer) — Objek pemain yang terkait dengan ID yang ditentukan.
Jika pemain dengan ID tersebut tidak ada, akan mengembalikan `null`.

### GetPlayerWithUserId

`GetPlayerWithUserId(userId: string) → ZepetoPlayer`

Mengambil instance pemain yang terkait dengan ID pengguna yang ditentukan.

| Parameter | Tipe     | Deskripsi   |
| --------- | -------- | ----------- |
| userId    | `string` | ID pengguna |

**Mengembalikan:** [ZepetoPlayer](./#zepetoplayer) — Objek pemain yang terkait dengan ID pengguna yang ditentukan.

### RemovePlayer

`RemovePlayer(id: string) → void`

Menghapus instance pemain yang terkait dengan ID sesi yang ditentukan.

| Parameter | Tipe     | Deskripsi |
| --------- | -------- | --------- |
| id        | `string` | ID sesi   |

### DeformDefaultCostume

`DeformDefaultCostume() → void`

Menghapus item deformasi tubuh yang dikenakan oleh karakter setiap pemain.
Mengembalikan ke bentuk tubuh default dan menerapkan pakaian ZEPETO default.

### DeformDefaultProperties

`DeformDefaultProperties() → void`

Menghapus item deformasi tubuh yang dikenakan oleh karakter setiap pemain.

## SpawnInfo

`class`

Merepresentasikan lokasi spawn dari karakter ZEPETO.

### Properti

| Nama             | Tipe                      | Deskripsi                             |
| ---------------- | ------------------------- | ------------------------------------- |
| Default (static) | [SpawnInfo](./#spawninfo) | Lokasi spawn default.                 |
| position         | `Vector3`                 | Lokasi karakter ZEPETO saat di-spawn. |
| rotation         | `Quaternion`              | Rotasi karakter ZEPETO saat di-spawn. |

## ZepetoCharacter

`class`

Merepresentasikan karakter ZEPETO yang dapat dimuat dan dikontrol di dalam ZEPETO World.

### Properti

| Nama                | Tipe                                              | Deskripsi                                                                                     |
| ------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| additionalWalkSpeed | `number`                                          | Mengambil kecepatan jalan tambahan.                                                           |
| additionalRunSpeed  | `number`                                          | Mengambil kecepatan lari tambahan.                                                            |
| additionalJumpPower | `number`                                          | Mengambil kekuatan lompat tambahan.                                                           |
| constraintRotation  | `boolean`                                         | Menentukan apakah rotasi karakter dibatasi.                                                   |
| ZepetoAnimator      | `Animator`                                        | Animator untuk karakter ZEPETO.                                                               |
| WalkSpeed           | `number`                                          | Mengambil total kecepatan berjalan, yaitu jumlah dari kecepatan dasar dan kecepatan tambahan. |
| RunSpeed            | `number`                                          | Mengambil total kecepatan berlari, yaitu jumlah dari kecepatan dasar dan kecepatan tambahan.  |
| JumpPower           | `number`                                          | Mengambil total kekuatan lompat, yaitu jumlah dari kekuatan dasar dan kekuatan tambahan.      |
| baseWalkSpeed       | `number`                                          | Mengambil kecepatan jalan dasar.                                                              |
| baseRunSpeed        | `number`                                          | Mengambil kecepatan lari dasar.                                                               |
| baseJumpPower       | `number`                                          | Mengambil kekuatan lompat dasar.                                                              |
| tryMove             | `boolean`                                         | Menunjukkan apakah karakter sedang mencoba bergerak.                                          |
| tryJump             | `boolean`                                         | Menunjukkan apakah karakter sedang mencoba melompat.                                          |
| tryDoubleJump       | `boolean`                                         | Menunjukkan apakah karakter sedang mencoba melompat ganda.                                    |
| motionState         | [MotionState](./#motionstate)                     | Status dan konfigurasi motion karakter.                                                       |
| loadingStatus       | [LoadingStatus](./#zepetocharacterloadingstatus)  | Status pemuatan karakter.                                                                     |
| Context             | `ZepetoContext`                                   | ZEPETO Context dari karakter.                                                                 |
| StateMachine        | [CharacterStateMachine](./#characterstatemachine) | State machine dari karakter.                                                                  |
| CurrentState        | [CharacterState](./#characterstate)               | Status karakter saat ini yang didefinisikan dalam state machine.                              |
| CurrentStateStatus  | [StateStatus](./#statestatus)                     | Status dari state karakter saat ini, yang didefinisikan dalam state machine.                  |
| ElapsedTime         | `number`                                          | Waktu yang berlalu dalam detik sejak karakter diinisialisasi.                                 |

### Event

| Nama           | Tipe                                         | Deskripsi                                                                                                                                                                                                     |
| -------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OnChangedState | `UnityEvent<CharacterState, CharacterState>` | Event yang terpicu saat status karakter berubah. Listener yang terdaftar menerima dua parameter: - Status karakter yang baru. (Tipe: `CharacterState`) - Status karakter sebelumnya. (Tipe: `CharacterState`) |
| OnUpdateState  | `UnityEvent<CharacterState>`                 | Event yang terpicu saat status karakter berada pada status `StateStatus.Update`. Listener yang terdaftar menerima satu parameter: - Status karakter saat ini. (Tipe: `CharacterState`)                        |

### Metode

### SyncStateAnimation

`SyncStateAnimation() → void`

Menyinkronkan animator dengan status karakter ZEPETO saat ini.

### ChangeStateAnimation

`ChangeStateAnimation(state: CharacterState) → void`

Memainkan animasi yang terkait dengan status karakter yang diberikan pada animator.

| Parameter | Tipe                                | Deskripsi                                                  |
| --------- | ----------------------------------- | ---------------------------------------------------------- |
| state     | [CharacterState](./#characterstate) | Status karakter yang mewakili animasi yang akan dimainkan. |

### ChangeStateAnimation

`ChangeStateAnimation(state: CharacterState, moveState: CharacterMoveState) → void`

Memainkan animasi yang terkait dengan status karakter yang diberikan pada animator.

| Parameter | Tipe                                        | Deskripsi                                                                             |
| --------- | ------------------------------------------- | ------------------------------------------------------------------------------------- |
| state     | [CharacterState](./#characterstate)         | Status karakter yang mewakili animasi yang akan dimainkan.                            |
| moveState | [CharacterMoveState](./#charactermovestate) | Status pergerakan opsional untuk animasi ketika `state` adalah `CharacterState.Move`. |

### ChangeStateAnimation

`ChangeStateAnimation(state: CharacterState, jumpState: CharacterJumpState) → void`

Memainkan animasi yang terkait dengan status karakter yang diberikan pada animator.

| Parameter | Tipe                                        | Deskripsi                                                                           |
| --------- | ------------------------------------------- | ----------------------------------------------------------------------------------- |
| state     | [CharacterState](./#characterstate)         | Status karakter yang mewakili animasi yang akan dimainkan.                          |
| jumpState | [CharacterJumpState](./#characterjumpstate) | Status lompatan opsional untuk animasi ketika `state` adalah `CharacterState.Jump`. |

### ChangeStateAnimation

`ChangeStateAnimation(state: CharacterState, landingState: CharacterLandingState) → void`

Memainkan animasi yang terkait dengan status karakter yang diberikan pada animator.

| Parameter    | Tipe                                              | Deskripsi                                                                                |
| ------------ | ------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| state        | [CharacterState](./#characterstate)               | Status karakter yang mewakili animasi yang akan dimainkan.                               |
| landingState | [CharacterLandingState](./#characterlandingstate) | Status pendaratan opsional untuk animasi ketika `state` adalah `CharacterState.Landing`. |

### Move

`Move(dir: Vector2) → void`

Menggerakkan karakter ke arah yang ditentukan.

| Parameter | Tipe      | Deskripsi                                      |
| --------- | --------- | ---------------------------------------------- |
| dir       | `Vector2` | Arah yang harus dituju karakter saat bergerak. |

### Move

`Move(dir: Vector3) → void`

Menggerakkan karakter ke arah yang ditentukan.

| Parameter | Tipe      | Deskripsi                                      |
| --------- | --------- | ---------------------------------------------- |
| dir       | `Vector3` | Arah yang harus dituju karakter saat bergerak. |

### MoveContinuously

`MoveContinuously(dir: Vector2) → void`

Menggerakkan karakter secara terus-menerus ke arah tertentu berdasarkan orientasi yang sedang dihadapinya.

| Parameter | Tipe      | Deskripsi                                                                                     |
| --------- | --------- | --------------------------------------------------------------------------------------------- |
| dir       | `Vector2` | Arah yang harus dituju karakter saat bergerak, berdasarkan orientasi yang sedang dihadapinya. |

### MoveContinuously

`MoveContinuously(dir: Vector3) → void`

Menggerakkan karakter secara terus-menerus ke arah tertentu berdasarkan orientasi yang sedang dihadapinya.

| Parameter | Tipe      | Deskripsi                                                                                     |
| --------- | --------- | --------------------------------------------------------------------------------------------- |
| dir       | `Vector3` | Arah yang harus dituju karakter saat bergerak, berdasarkan orientasi yang sedang dihadapinya. |

### MoveToPosition

`MoveToPosition(pos: Vector3) → void`

Menggerakkan karakter ke posisi yang ditentukan.

| Parameter | Tipe      | Deskripsi                           |
| --------- | --------- | ----------------------------------- |
| pos       | `Vector3` | Tujuan yang harus dicapai karakter. |

### StopMoving

`StopMoving() → void`

Menghentikan pergerakan karakter.

### Jump

`Jump() → void`

Membuat karakter melompat.

### DoubleJump

`DoubleJump() → void`

Membuat karakter melompat ganda.

### Teleport

`Teleport(pos: Vector3, rot: Quaternion) → void`

Memindahkan karakter secara instan ke transform yang ditentukan.

| Parameter | Tipe         | Deskripsi                            |
| --------- | ------------ | ------------------------------------ |
| pos       | `Vector3`    | Posisi tujuan teleportasi karakter.  |
| rot       | `Quaternion` | Rotasi karakter setelah teleportasi. |

### SetGesture

`SetGesture(gesture: AnimationClip) → void`

Memainkan motion karakter untuk gesture yang ditentukan.

| Parameter | Tipe            | Deskripsi                             |
| --------- | --------------- | ------------------------------------- |
| gesture   | `AnimationClip` | Gesture yang akan dilakukan karakter. |

### CancelGesture

`CancelGesture() → void`

Menghentikan pemutaran gesture.

### GetSocket

`GetSocket(socket: KnowSockets) → Transform`

Mengambil `Transform` dari socket pada karakter.

| Parameter | Tipe                          | Deskripsi                  |
| --------- | ----------------------------- | -------------------------- |
| socket    | [KnowSockets](./#knowsockets) | Socket (titik pemasangan). |

**Mengembalikan:** `Transform` — Komponen `Transform` yang terkait dengan socket yang ditentukan.

### GetSocket

`GetSocket(socket: string) → Transform`

Mengambil `Transform` dari socket pada karakter.

| Parameter | Tipe     | Deskripsi                       |
| --------- | -------- | ------------------------------- |
| socket    | `string` | Nama socket (titik pemasangan). |

**Mengembalikan:** `Transform` — Komponen `Transform` yang terkait dengan socket yang ditentukan.

### GetBodyModifierProperties

`GetBodyModifierProperties() → ZepetoPropertyFlag[]`

Mengambil properti karakter yang terkait dengan item deformasi tubuh yang dikenakan karakter.

**Mengembalikan:** `ZepetoPropertyFlag[]` — Properti karakter yang terkait dengan item deformasi tubuh yang dikenakan karakter.

### DeformDefaultProperties

`DeformDefaultProperties() → void`

Menghapus item deformasi tubuh yang dikenakan karakter dan mengembalikannya ke bentuk tubuh default.

### DeformDefaultCostume

`DeformDefaultCostume() → void`

Menghapus item deformasi tubuh yang dikenakan karakter, mengembalikannya ke bentuk tubuh default, dan menerapkan pakaian ZEPETO default.

### add\_loadedCharacter

`add_loadedCharacter(value: Action) → void`

Menambahkan fungsi callback untuk menangani selesainya pemuatan karakter.

| Parameter | Tipe     |
| --------- | -------- |
| value     | `Action` |

### remove\_loadedCharacter

`remove_loadedCharacter(value: Action) → void`

Menghapus fungsi callback untuk menangani selesainya pemuatan karakter.

| Parameter | Tipe     |
| --------- | -------- |
| value     | `Action` |

## CameraData

`class`

Merepresentasikan konfigurasi awal untuk `ZepetoCamera`.

### Properti

| Nama                   | Tipe         | Deskripsi                                                                                                        |
| ---------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------- |
| cameraPrefab           | `GameObject` | Prefab untuk menginisialisasi `ZepetoCamera`.                                                                    |
| maxZoomDistance        | `number`     | Jarak maksimum default kamera dapat menjauh dari target.                                                         |
| minZoomDistance        | `number`     | Jarak minimum default kamera dapat mendekat ke target.                                                           |
| maxPitch               | `number`     | Sudut vertikal maksimum saat kamera berputar mengelilingi target.                                                |
| minPitch               | `number`     | Sudut vertikal minimum saat kamera berputar mengelilingi target.                                                 |
| offset                 | `Vector3`    | Offset default kamera terhadap targetnya.                                                                        |
| lockXAxis              | `boolean`    | Menunjukkan apakah rotasi kamera pada sumbu X dikunci.                                                           |
| layer                  | `LayerMask`  | Mendefinisikan layer yang dapat bertabrakan dengan kamera.                                                       |
| collisionTimeThreshold | `number`     | Ambang waktu untuk deteksi tabrakan kamera, yang memengaruhi seberapa cepat kamera merespons tabrakan.           |
| zoomSpeed              | `number`     | Kecepatan zoom in dan zoom out.                                                                                  |
| zoomDampSpeed          | `number`     | Kecepatan interpolasi untuk zoom in dan zoom out.                                                                |
| rotationSpeed          | `number`     | Kecepatan rotasi.                                                                                                |
| rotationDampSpeed      | `number`     | Kecepatan interpolasi untuk rotasi.                                                                              |
| characterCulling       | `boolean`    | Menunjukkan apakah character culling diaktifkan untuk mencegah masalah rendering saat jarak kamera sangat dekat. |
| targetScaleWeight      | `number`     | Bobot yang diterapkan pada skala target untuk menyesuaikan posisi dan perilaku kamera.                           |

## CharacterData

`class`

Merepresentasikan konfigurasi awal untuk `ZepetoCharacter`.

### Properti

| Nama               | Tipe                                    | Deskripsi                                                                          |
| ------------------ | --------------------------------------- | ---------------------------------------------------------------------------------- |
| slopeLimit         | `number`                                | Kemiringan paling curam yang dapat didaki karakter.                                |
| stepOffset         | `number`                                | Selisih ketinggian vertikal maksimum yang dapat dilewati karakter.                 |
| skinWidth          | `number`                                | Skin width untuk deteksi tabrakan, mencegah karakter masuk ke dalam collider lain. |
| minMoveDistance    | `number`                                | Celah terkecil yang dapat dilalui karakter.                                        |
| center             | `Vector3`                               | Titik pusat collider karakter.                                                     |
| radius             | `number`                                | Radius kapsul collider karakter.                                                   |
| height             | `number`                                | Tinggi kapsul collider karakter.                                                   |
| layer              | `LayerMask`                             | Mendefinisikan layer yang dapat bertabrakan dengan karakter.                       |
| shadow             | `GameObject`                            | Representasi visual dari bayangan karakter.                                        |
| animatorController | `RuntimeAnimatorController`             | Animator controller untuk karakter.                                                |
| walkSpeed          | `number`                                | Kecepatan berjalan karakter.                                                       |
| runSpeed           | `number`                                | Kecepatan berlari karakter.                                                        |
| jumpPower          | `number`                                | Kekuatan lompat karakter.                                                          |
| customMotionData   | [CustomMotionData](./#custommotiondata) | Konfigurasi kustom untuk motion karakter.                                          |

## ControllerData

`class`

Merepresentasikan konfigurasi untuk `ZepetoPlayerControl`.

### Properti

| Nama                        | Tipe               | Deskripsi                                                                                                                       |
| --------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| inputAsset                  | `InputActionAsset` | Kontainer untuk input action dan binding yang digunakan untuk mengelola konfigurasi input yang kompleks.                        |
| eventSystem                 | `GameObject`       | Memproses input pengguna dan meneruskannya ke komponen UI. Menangani interaksi seperti klik tombol, drag, drop, dan sebagainya. |
| useDefaultVirtualController | `boolean`          | Menentukan apakah V-Pad default digunakan.                                                                                      |
| useDefaultInputController   | `boolean`          | Menentukan apakah input controller default digunakan.                                                                           |
| verticalController          | `GameObject`       | Prefab controller V-pad untuk orientasi layar vertikal.                                                                         |
| horizontalController        | `GameObject`       | Prefab controller V-pad untuk orientasi layar horizontal.                                                                       |

## FloatingUIData

`class`

Class yang bertanggung jawab mengelola pengaturan UI terkait karakter.

### Properti

| Nama                       | Tipe      | Deskripsi                                                                 |
| -------------------------- | --------- | ------------------------------------------------------------------------- |
| showNickNameLocalPlayer    | `boolean` | Menentukan apakah UI nickname karakter local player ditampilkan.          |
| showNickNameOtherPlayers   | `boolean` | Menentukan apakah UI nickname karakter pemain lain ditampilkan.           |
| showBubbleChatLocalPlayer  | `boolean` | Menentukan apakah UI bubble chat karakter local player ditampilkan.       |
| showBubbleChatOtherPlayers | `boolean` | Menentukan apakah UI bubble chat karakter pemain lain ditampilkan.        |
| useMiniProfileOnApp        | `boolean` | Menentukan apakah UI pop-up mini-profil ditampilkan saat karakter diklik. |

## LocalPlayer

`class`

Class yang dirancang untuk mengelola aksi local player, termasuk pergerakan, kustomisasi kostum, dan interaksi dengan kamera ZEPETO.

### Properti

| Nama         | Tipe                            | Deskripsi                                                  |
| ------------ | ------------------------------- | ---------------------------------------------------------- |
| movingAxis   | `Transform`                     | Sumbu pusat pergerakan karakter ZEPETO milik local player. |
| zepetoCamera | [ZepetoCamera](./#zepetocamera) | Instance kamera ZEPETO yang terkait dengan local player.   |
| zepetoPlayer | [ZepetoPlayer](./#zepetoplayer) | Instance pemain ZEPETO yang terkait dengan local player.   |

### Metode

### SetCostume

`SetCostume(itemCode: string, complete?: Action) → void`

Mengubah kostum karakter ZEPETO milik local player. Melempar `Exception` umum.

| Parameter           | Tipe     | Deskripsi                                     |
| ------------------- | -------- | --------------------------------------------- |
| itemCode            | `string` | ID item dari kostum tersebut.                 |
| complete (opsional) | `Action` | Fungsi callback untuk menangani penyelesaian. |

### Jump

`Jump() → void`

Membuat karakter ZEPETO milik local player melompat.

### DoubleJump

`DoubleJump() → void`

Membuat karakter ZEPETO milik local player melompat ganda.

### Move

`Move(dir: Vector2) → void`

Menggerakkan karakter ZEPETO milik local player ke arah yang ditentukan.

| Parameter | Tipe      | Deskripsi                                      |
| --------- | --------- | ---------------------------------------------- |
| dir       | `Vector2` | Arah yang harus dituju karakter saat bergerak. |

### Move

`Move(dir: Vector3) → void`

Menggerakkan karakter ZEPETO milik local player ke arah yang ditentukan.

| Parameter | Tipe      | Deskripsi                                      |
| --------- | --------- | ---------------------------------------------- |
| dir       | `Vector3` | Arah yang harus dituju karakter saat bergerak. |

### StopMoving

`StopMoving() → void`

Menghentikan karakter ZEPETO milik local player.

## ZepetoCamera

`class`

Class kontrol kamera yang dirancang untuk digunakan di dalam ZEPETO Character Controller.

### Properti

| Nama                      | Tipe                                          | Deskripsi                                                                                                        |
| ------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| additionalMaxZoomDistance | `number`                                      | Jarak tambahan yang ditambahkan pada nilai zoom maksimum default.                                                |
| additionalMinZoomDistance | `number`                                      | Jarak tambahan yang ditambahkan pada nilai zoom minimum default.                                                 |
| additionalOffset          | `Vector3`                                     | Offset tambahan yang diterapkan pada posisi kamera relatif terhadap targetnya.                                   |
| currentState              | [CameraState](./#camerastate)                 | Mengambil status kamera saat ini.                                                                                |
| currentStateStatus        | [StateStatus](./#statestatus)                 | Mengambil status dari state kamera saat ini.                                                                     |
| position                  | `Vector3`                                     | Mengambil nilai posisi kamera saat ini.                                                                          |
| rotation                  | `Quaternion`                                  | Mengambil nilai rotasi kamera saat ini.                                                                          |
| distance                  | `number`                                      | Jarak dari target.                                                                                               |
| cameraParent              | `Transform`                                   | `Transform` dari objek induk kamera.                                                                             |
| isFollow                  | `boolean`                                     | Mengambil flag yang menunjukkan apakah kamera sedang mengikuti target.                                           |
| StateMachine              | [StateMachine\<CameraState>](./#statemachine) | Mengambil state machine kamera.                                                                                  |
| FollowTarget              | `Transform`                                   | Mengambil `Transform` dari target. Secara default, ini diatur ke `HEAD_UPPER` dari karakter local player.        |
| MaxZoomDistance           | `number`                                      | Jarak maksimum hasil perhitungan yang dapat dicapai kamera saat menjauh dari target.                             |
| MinZoomDistance           | `number`                                      | Jarak minimum hasil perhitungan yang dapat dicapai kamera saat mendekat ke target.                               |
| LookOffset                | `Vector3`                                     | Offset hasil perhitungan dari kamera terhadap targetnya.                                                         |
| LockXAxis                 | `boolean`                                     | Menunjukkan apakah rotasi kamera pada sumbu X dikunci.                                                           |
| CollisionLayer            | `LayerMask`                                   | Mendefinisikan layer yang dapat bertabrakan dengan kamera.                                                       |
| targetScaleWeight         | `number`                                      | Bobot yang diterapkan pada skala target untuk menyesuaikan posisi dan perilaku kamera.                           |
| useCharacterCulling       | `boolean`                                     | Menunjukkan apakah character culling diaktifkan untuk mencegah masalah rendering saat jarak kamera sangat dekat. |
| zoomSpeed                 | `number`                                      | Kecepatan zoom in dan zoom out.                                                                                  |
| zoomDampSpeed             | `number`                                      | Kecepatan interpolasi untuk zoom in dan zoom out.                                                                |
| rotationSpeed             | `number`                                      | Kecepatan rotasi.                                                                                                |
| rotationDampSpeed         | `number`                                      | Kecepatan interpolasi untuk rotasi.                                                                              |
| camera                    | `Camera`                                      | `Camera` Unity.                                                                                                  |

### Event

| Nama           | Tipe                                   | Deskripsi                                                                                                                                                                                         |
| -------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OnChangedState | `UnityEvent<CameraState, CameraState>` | Event yang terpicu saat status kamera berubah. Listener yang terdaftar menerima dua parameter: - Status kamera yang baru. (Tipe: `CameraState`) - Status kamera sebelumnya. (Tipe: `CameraState`) |
| OnUpdateState  | `UnityEvent<CameraState>`              | Event yang terpicu saat status kamera saat ini berada pada status `StateStatus.Update`. Listener yang terdaftar menerima satu parameter: - Status kamera saat ini. (Tipe: `CameraState`)          |

### Metode

### Create

`static Create(camera: Camera, data: CameraData) → ZepetoCamera`

Membuat instance `ZepetoCamera`.

| Parameter | Tipe                        | Deskripsi                                                               |
| --------- | --------------------------- | ----------------------------------------------------------------------- |
| camera    | `Camera`                    | Objek `Camera` Unity yang digunakan sebagai dasar untuk `ZepetoCamera`. |
| data      | [CameraData](./#cameradata) | Konfigurasi awal untuk `ZepetoCamera`.                                  |

**Mengembalikan:** [ZepetoCamera](./#zepetocamera) — Instance baru dari `ZepetoCamera`.

### SetFollowTarget

`SetFollowTarget(target: Transform, scaleReference?: Transform) → void`

Mengatur target yang akan diikuti kamera.

| Parameter                 | Tipe        | Deskripsi                                                                                                                                                                                     |
| ------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| target                    | `Transform` | `Transform` yang mewakili objek yang harus diikuti kamera.                                                                                                                                    |
| scaleReference (opsional) | `Transform` | `Transform` yang digunakan sebagai referensi untuk menskalakan perilaku pengikutan kamera. Jika diberikan, kamera akan menyesuaikan jaraknya terhadap target berdasarkan skala referensi ini. |

### Rotate

`Rotate(delta: Vector2) → void`

Memutar kamera.

| Parameter | Tipe      | Deskripsi     |
| --------- | --------- | ------------- |
| delta     | `Vector2` | Besar rotasi. |

### DoZoom

`DoZoom(delta: number) → void`

Melakukan zoom pada kamera.

| Parameter | Tipe     | Deskripsi   |
| --------- | -------- | ----------- |
| delta     | `number` | Besar zoom. |

## ZepetoPlayer

`class`

Merepresentasikan pemain ZEPETO.

### Properti

| Nama          | Tipe                                  | Deskripsi                                                                  |
| ------------- | ------------------------------------- | -------------------------------------------------------------------------- |
| userId        | `string`                              | ID pengguna pemain, yaitu ID acak unik yang diberikan saat pembuatan akun. |
| name          | `string`                              | Nama pengguna pemain, yang diatur oleh pengguna di aplikasi ZEPETO.        |
| character     | [ZepetoCharacter](./#zepetocharacter) | Karakter ZEPETO milik pemain.                                              |
| isLocalPlayer | `boolean`                             | Menunjukkan apakah ini merupakan local player.                             |

### Metode

### GetProfileTextureAsync

`GetProfileTextureAsync(complete: Action<Texture2D>) → void`

Mengambil gambar profil pemain. Melempar `Exception` umum.

| Parameter | Tipe                | Deskripsi                                                   |
| --------- | ------------------- | ----------------------------------------------------------- |
| complete  | `Action<Texture2D>` | Fungsi callback untuk menangani gambar profil yang diambil. |

### Release

`Release() → void`

Melepaskan objek pemain ZEPETO.

## ZepetoPlayerControl

`class`

Mengelola kontrol input untuk pemain ZEPETO.

### Metode

### Create

`static Create(playerActions: PlayerActions) → ZepetoPlayerControl`

Membuat instance `ZepetoPlayerControl`.

| Parameter     | Tipe            | Deskripsi                                                               |
| ------------- | --------------- | ----------------------------------------------------------------------- |
| playerActions | `PlayerActions` | Kumpulan input action yang akan dikaitkan dengan `ZepetoPlayerControl`. |

**Mengembalikan:** [ZepetoPlayerControl](./#zepetoplayercontrol) — Instance baru dari `ZepetoPlayerControl`.
Instance dipasang pada game object baru dan siap menangani input action pemain.

## ZepetoCameraControl

`class`

Mengelola kontrol kamera di lingkungan ZEPETO, termasuk penanganan input untuk pergerakan dan zoom kamera.

### Metode

### Create

`static Create(cameraActions: CameraActions) → ZepetoCameraControl`

Membuat instance `ZepetoCameraControl`.

| Parameter     | Tipe            | Deskripsi                                                                                                                                 |
| ------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| cameraActions | `CameraActions` | Kumpulan camera action yang akan dikaitkan dengan `ZepetoCameraControl`. Action ini menentukan bagaimana kamera merespons input pengguna. |

**Mengembalikan:** [ZepetoCameraControl](./#zepetocameracontrol) — Instance baru dari `ZepetoCameraControl`.
Instance dipasang pada game object baru dan siap menangani input action kamera.

## CharacterState

`enum`

Merepresentasikan status karakter ZEPETO.

| Nama     | Nilai | Deskripsi                                                                                   |
| -------- | ----- | ------------------------------------------------------------------------------------------- |
| Invalid  | 0     | Belum diinisialisasi atau tidak valid.                                                      |
| Idle     | 1     | Karakter tidak sedang melakukan pergerakan atau aksi apa pun.                               |
| Walk     | 2     | Karakter bergerak dengan lambat.                                                            |
| Run      | 3     | Karakter bergerak dengan cepat.                                                             |
| JumpIdle | 4     | Karakter melompat di tempat.                                                                |
| JumpMove | 5     | Karakter melompat ke suatu arah, menggabungkan lompatan vertikal dengan gerakan horizontal. |
| Teleport | 20    | Karakter berpindah dari satu lokasi ke lokasi lain tanpa melewati ruang di antaranya.       |
| Gesture  | 30    | Karakter sedang melakukan gesture.                                                          |
| Move     | 102   | Status pergerakan umum.                                                                     |
| MoveTurn | 103   | Karakter sedang mengubah arah pergerakan.                                                   |
| Jump     | 104   | Status lompatan umum.                                                                       |
| Stamp    | 106   | Karakter sedang melakukan hentakan kaki.                                                    |
| Falling  | 108   | Karakter sedang jatuh bebas.                                                                |
| Landing  | 109   | Karakter kembali ke tanah setelah jatuh.                                                    |

## CharacterMoveState

`enum`

Merepresentasikan status pergerakan secara detail dari karakter ZEPETO.

| Nama     | Nilai | Deskripsi               |
| -------- | ----- | ----------------------- |
| None     | -1    | None.                   |
| MoveWalk | 0     | Bergerak dengan lambat. |
| MoveRun  | 1     | Bergerak dengan cepat.  |

## CharacterJumpState

`enum`

Merepresentasikan status lompatan secara detail dari karakter ZEPETO.

| Nama       | Nilai | Deskripsi                                                                          |
| ---------- | ----- | ---------------------------------------------------------------------------------- |
| None       | -1    | None.                                                                              |
| JumpIdle   | 0     | Melompat di tempat.                                                                |
| JumpMove   | 1     | Melompat ke suatu arah, menggabungkan lompatan vertikal dengan gerakan horizontal. |
| JumpDash   | 2     | Melompat dengan cepat.                                                             |
| JumpDouble | 3     | Melakukan lompatan kedua saat sedang melompat.                                     |

## CharacterLandingState

`enum`

Merepresentasikan status pendaratan secara detail dari karakter ZEPETO.

| Nama          | Nilai | Deskripsi                        |
| ------------- | ----- | -------------------------------- |
| None          | -1    | None.                            |
| LandingSlight | 0     | Mendarat dengan benturan ringan. |
| LandingDeep   | 1     | Mendarat dengan benturan besar.  |
| LandingRoll   | 2     | Mendarat sambil berguling.       |

## KnowSockets

`enum`

Mendefinisikan sekumpulan titik pemasangan yang dikenal, disebut socket, pada karakter.

| Nama        | Nilai | Deskripsi                                      |
| ----------- | ----- | ---------------------------------------------- |
| HEAD\_UPPER | 0     | Merepresentasikan bagian atas kepala karakter. |

## MotionState

`class`

Class untuk mengelola status dan konfigurasi motion karakter.

### Properti

| Nama                | Tipe                                              | Deskripsi                                                               |
| ------------------- | ------------------------------------------------- | ----------------------------------------------------------------------- |
| useDoubleJump       | `boolean`                                         | Menentukan apakah karakter dapat melakukan lompat ganda.                |
| doubleJumpPower     | `number`                                          | Gaya tambahan yang diterapkan saat lompat ganda.                        |
| useLanding          | `boolean`                                         | Menentukan apakah motion pendaratan diterapkan.                         |
| useLandingRoll      | `boolean`                                         | Menentukan apakah karakter berguling saat mendarat.                     |
| landingRollSpeed    | `number`                                          | Mendapatkan atau mengatur kecepatan gulingan pendaratan karakter.       |
| useMoveTurn         | `boolean`                                         | Menentukan apakah motion untuk perubahan arah gerak karakter dimainkan. |
| gravity             | `number`                                          | Gaya gravitasi yang diterapkan pada karakter.                           |
| currentJumpState    | [CharacterJumpState](./#characterjumpstate)       | Mengambil status lompatan karakter saat ini.                            |
| currentLandingState | [CharacterLandingState](./#characterlandingstate) | Mengambil status pendaratan karakter saat ini.                          |
| currentMoveState    | [CharacterMoveState](./#charactermovestate)       | Mengambil status pergerakan karakter saat ini.                          |

## CharacterStateMachine

`class` · extends [StateMachine\<CharacterState>](./#statemachine)

Class yang bertanggung jawab menyinkronkan animator dengan status karakter dari karakter ZEPETO.

### Properti

| Nama                     | Tipe      | Deskripsi                                                                                                                                                                          |
| ------------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| constraintStateAnimation | `boolean` | Menentukan apakah animator disinkronkan dengan status karakter ZEPETO saat ini. Jika diatur ke `true`, status animator tidak akan diperbarui berdasarkan status karakter saat ini. |

### Metode

### SyncStateAnimation

`SyncStateAnimation() → void`

Menyinkronkan animator dengan status karakter ZEPETO saat ini.

### ChangeStateAnimation

`ChangeStateAnimation(state: CharacterState) → void`

Memainkan animasi yang terkait dengan status karakter yang diberikan pada animator.

| Parameter | Tipe                                | Deskripsi                                                  |
| --------- | ----------------------------------- | ---------------------------------------------------------- |
| state     | [CharacterState](./#characterstate) | Status karakter yang mewakili animasi yang akan dimainkan. |

## StateMachine

`class`

`StateMachine` manages the `States`, `Transitions`, and `Events`.
Dengan memperbarui status sesuai kondisi yang ditentukan dan waktu yang berlalu, class ini memungkinkan pendefinisian dan pengendalian beragam status untuk objek.

### Properti

| Nama            | Tipe                                            | Deskripsi                                                                                                                               |
| --------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| OnChangedState  | `Action<TEnum, TEnum>`                          | Event yang terpicu saat status kamera berubah. Listener yang terdaftar menerima dua parameter: - Status yang baru. - Status sebelumnya. |
| Events          | [TransitionBase\<TEnum>\[\]](./#transitionbase) | Menyediakan array berisi seluruh event yang didefinisikan dalam state machine.                                                          |
| Current         | [State\<TEnum>](./#state)                       | Mengambil state saat ini.                                                                                                               |
| Prev            | [State\<TEnum>](./#state)                       | Mengambil state sebelumnya.                                                                                                             |
| IsRunning       | `boolean`                                       | Menunjukkan apakah state machine sedang aktif memproses state dan transisi.                                                             |
| stateCount      | `number`                                        | Mengambil jumlah state yang didefinisikan dalam state machine.                                                                          |
| transitionCount | `number`                                        | Mengambil jumlah transisi yang didefinisikan dalam state machine.                                                                       |

### Metode

### FindState

`FindState(state: TEnum, success: Action<State<TEnum>>, failed: Action) → void`

Mencari sebuah state dalam state machine dan menjalankan callback jika berhasil.

| Parameter | Tipe                   | Deskripsi                                                           |
| --------- | ---------------------- | ------------------------------------------------------------------- |
| state     | `TEnum`                | State yang dicari dalam state machine.                              |
| success   | `Action<State<TEnum>>` | Fungsi callback untuk menangani `State` yang ditemukan.             |
| failed    | `Action`               | Fungsi callback untuk menangani kasus ketika state tidak ditemukan. |

### FindTransitions

`FindTransitions(from: TEnum, success: Action<Transition<TEnum>[]>, failed: Action) → void`

Mencari transisi dalam state machine dan menjalankan callback jika berhasil.

| Parameter | Tipe                          | Deskripsi                                                              |
| --------- | ----------------------------- | ---------------------------------------------------------------------- |
| from      | `TEnum`                       | State tempat transisi dimulai.                                         |
| success   | `Action<Transition<TEnum>[]>` | Fungsi callback untuk menangani array `Transition` yang ditemukan.     |
| failed    | `Action`                      | Fungsi callback untuk menangani kasus ketika transisi tidak ditemukan. |

### FindTransition

`FindTransition(from: TEnum, to: TEnum, success: Action<Transition<TEnum>>, failed: Action) → void`

Mencari sebuah transisi dalam state machine dan menjalankan callback jika berhasil.

| Parameter | Tipe                        | Deskripsi                                                              |
| --------- | --------------------------- | ---------------------------------------------------------------------- |
| from      | `TEnum`                     | State tempat transisi dimulai.                                         |
| to        | `TEnum`                     | State tujuan dari transisi tersebut.                                   |
| success   | `Action<Transition<TEnum>>` | Fungsi callback untuk menangani `Transition` yang ditemukan.           |
| failed    | `Action`                    | Fungsi callback untuk menangani kasus ketika transisi tidak ditemukan. |

### Start

`Start(state: TEnum) → void`

Memulai pemrosesan state machine.

| Parameter | Tipe    | Deskripsi                                              |
| --------- | ------- | ------------------------------------------------------ |
| state     | `TEnum` | State awal tempat state machine memulai pemrosesannya. |

### Update

`Update(deltaTime: number) → void`

Memperbarui state dan transisi state machine saat ini.

| Parameter | Tipe     | Deskripsi                                                           |
| --------- | -------- | ------------------------------------------------------------------- |
| deltaTime | `number` | Waktu yang berlalu dalam detik sejak pemanggilan `Update` terakhir. |

### Stop

`Stop() → void`

Menghentikan pemrosesan state machine.

### EnterState

`EnterState(state: TEnum) → void`

Mengalihkan state machine ke state yang ditentukan.

| Parameter | Tipe    | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| state     | `TEnum` | State tujuan transisi state machine. |

### LeaveState

`LeaveState(nextState: TEnum) → void`

State machine keluar dari state saat ini.

| Parameter | Tipe    | Deskripsi                                                                |
| --------- | ------- | ------------------------------------------------------------------------ |
| nextState | `TEnum` | State berikutnya yang akan ditangani oleh `OnLeave` dari state saat ini. |

## StateStatus

`enum`

Merepresentasikan status yang mungkin dari sebuah state di dalam state machine, yang menunjukkan fase siklus hidup state saat ini.

| Nama   | Nilai | Deskripsi                                                        |
| ------ | ----- | ---------------------------------------------------------------- |
| Wait   | 0     | State tidak aktif dan menunggu untuk dimasuki.                   |
| Enter  | 1     | State sedang dalam proses dimasuki.                              |
| Update | 2     | State aktif dan logikanya sedang dijalankan.                     |
| End    | 3     | State telah menyelesaikan fase aktifnya dan siap untuk berakhir. |
| Leave  | 4     | State sedang dalam proses ditinggalkan.                          |

## CustomMotionData

`class`

Merepresentasikan konfigurasi kustom untuk motion karakter.

### Properti

| Nama                          | Tipe      | Deskripsi                                                                                                   |
| ----------------------------- | --------- | ----------------------------------------------------------------------------------------------------------- |
| useDoubleJump                 | `boolean` | Menentukan apakah karakter dapat melakukan lompat ganda.                                                    |
| doubleJumpPower               | `number`  | Gaya tambahan yang diterapkan saat lompat ganda.                                                            |
| useLanding                    | `boolean` | Menentukan apakah motion pendaratan diterapkan.                                                             |
| useLandingRoll                | `boolean` | Menentukan apakah karakter berguling saat mendarat.                                                         |
| landingRollSpeed              | `number`  | Kecepatan pemutaran motion gulingan pendaratan.                                                             |
| useMoveTurn                   | `boolean` | Menentukan apakah motion untuk perubahan arah gerak karakter dimainkan.                                     |
| gravity                       | `number`  | Gaya gravitasi yang diterapkan pada karakter.                                                               |
| walkThreshold                 | `number`  | Nilai input minimum yang diperlukan untuk memicu akselerasi pada motion berjalan.                           |
| runThreshold                  | `number`  | Nilai input minimum yang diperlukan untuk mengubah motion dari berjalan menjadi berlari.                    |
| fallingTimeThreshold          | `number`  | Durasi jatuh minimum untuk menentukan apakah karakter telah memasuki status jatuh.                          |
| fallingSpeedThreshold         | `number`  | Kecepatan jatuh minimum untuk menentukan apakah karakter telah memasuki status jatuh.                       |
| landingTimeThreshold          | `number`  | Durasi minimum menyentuh tanah untuk menentukan apakah karakter telah mendarat.                             |
| landingSpeedThreshold         | `number`  | Kecepatan jatuh minimum untuk menentukan apakah karakter dapat melakukan aksi tambahan saat mendarat.       |
| landingImpactSpeedThreshold   | `number`  | Kecepatan jatuh minimum untuk menentukan apakah karakter mengalami benturan yang lebih besar saat mendarat. |
| landingRollSpeedThreshold     | `number`  | Kecepatan jatuh maksimum yang diperlukan untuk memicu gulingan pendaratan.                                  |
| moveTurnAngleThreshold        | `number`  | Sudut belok minimum yang diperlukan untuk memicu motion berbelok.                                           |
| moveTurnSpeedThreshold        | `number`  | Kecepatan gerak minimum yang diperlukan untuk memicu motion berbelok.                                       |
| moveTurnTimeThreshold         | `number`  | Durasi dari motion berbelok.                                                                                |
| jumpDashSpeedThreshold        | `number`  | Kecepatan lompat minimum yang diperlukan untuk memicu dash.                                                 |
| walkClipBaseSpeed             | `number`  | Kecepatan dasar dari motion berjalan.                                                                       |
| stampClipNormalizedTime       | `number`  | Durasi dari motion hentakan kaki.                                                                           |
| landingClipNormalizedTime     | `number`  | Durasi dari motion pendaratan.                                                                              |
| landingRollClipNormalizedTime | `number`  | Durasi dari motion gulingan pendaratan.                                                                     |
| moveTurnClipNormalizedTime    | `number`  | Durasi dari motion berbelok.                                                                                |

## CharacterShadow

`class`

Class yang bertanggung jawab mengelola bayangan karakter ZEPETO.

### Properti

| Nama              | Tipe        | Deskripsi                                                           |
| ----------------- | ----------- | ------------------------------------------------------------------- |
| target            | `Transform` | Merepresentasikan objek yang berfungsi sebagai referensi transform. |
| autoSyncTransform | `boolean`   | Menentukan apakah posisi bayangan disinkronkan dengan target.       |

## CameraState

`enum`

Merepresentasikan status dari `ZepetoCamera`.

| Nama   | Nilai | Deskripsi                       |
| ------ | ----- | ------------------------------- |
| Idle   | 0     | Kamera tidak mengikuti target.  |
| Follow | 1     | Kamera sedang mengikuti target. |

## ZepetoScreenStick

`class` · extends [ZepetoScreenControl](./#zepetoscreencontrol)

Class yang dirancang untuk menangani interaksi stick di lingkungan ZEPETO.

### Event

| Nama               | Tipe                  | Deskripsi                                     |
| ------------------ | --------------------- | --------------------------------------------- |
| OnPointerDownEvent | `UnityEvent`          | Event yang terpicu saat stick ditekan.        |
| OnDragEvent        | `UnityEvent<Vector2>` | Event yang terpicu saat stick sedang di-drag. |
| OnPointerUpEvent   | `UnityEvent`          | Event yang terpicu saat stick dilepas.        |

### Metode

### OnDrag

`OnDrag(eventData: PointerEventData) → void`

Mengelola perilaku drag, menghitung delta posisi dan membatasinya dalam rentang pergerakan yang ditentukan.
Memicu `OnDragEvent` dengan nilai posisi yang telah dinormalisasi.
Melempar `ArgumentNullException`.

| Parameter | Tipe               | Deskripsi                            |
| --------- | ------------------ | ------------------------------------ |
| eventData | `PointerEventData` | Data yang terkait dengan event drag. |

## ZepetoScreenControl

`class`

Class abstrak yang dirancang untuk membuat kontrol UI di lingkungan ZEPETO.

### Metode

### OnPointerDown

`OnPointerDown(eventData: PointerEventData) → void`

Menangani event saat pengguna menekan kontrol UI.

| Parameter | Tipe               | Deskripsi                                    |
| --------- | ------------------ | -------------------------------------------- |
| eventData | `PointerEventData` | Data yang terkait dengan event pointer down. |

### OnPointerUp

`OnPointerUp(eventData: PointerEventData) → void`

Menangani event saat pengguna melepas kontrol UI.

| Parameter | Tipe               | Deskripsi                                  |
| --------- | ------------------ | ------------------------------------------ |
| eventData | `PointerEventData` | Data yang terkait dengan event pointer up. |

## ZepetoScreenButton

`class` · extends [ZepetoScreenControl](./#zepetoscreencontrol)

Class yang dirancang untuk menangani interaksi tombol di lingkungan ZEPETO.

### Event

| Nama             | Tipe         | Deskripsi                               |
| ---------------- | ------------ | --------------------------------------- |
| OnPointDownEvent | `UnityEvent` | Event yang terpicu saat tombol ditekan. |
| OnPointUpEvent   | `UnityEvent` | Event yang terpicu saat tombol dilepas. |

## ZepetoScreenTouchpad

`class` · extends [ZepetoScreenControl](./#zepetoscreencontrol)

Class yang dirancang untuk menangani interaksi touchpad di lingkungan ZEPETO.

### Properti

| Nama                          | Tipe             | Deskripsi                                                                                            |
| ----------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------- |
| canvasGroupTouchPadBackground | `CanvasGroup`    | Komponen canvas group yang digunakan untuk mengelola opasitas dan interaksi latar belakang touchpad. |
| touchPadBackgroundCurve       | `AnimationCurve` | Animation curve untuk efek fade in dan fade out latar belakang touchpad.                             |
| touchHandle                   | `RectTransform`  | Komponen `RectTransform` yang mewakili touch handle.                                                 |
| touchHandleAnimator           | `Animator`       | Komponen animator yang digunakan untuk menganimasikan touch handle.                                  |
| touchHandleOrigin             | `RectTransform`  | `RectTransform` untuk posisi awal touch handle.                                                      |
| touchHandleOriginAnimator     | `Animator`       | Komponen animator untuk titik asal touch handle.                                                     |

### Event

| Nama               | Tipe                  | Deskripsi                                        |
| ------------------ | --------------------- | ------------------------------------------------ |
| OnPointerDownEvent | `UnityEvent`          | Event yang terpicu saat touchpad ditekan.        |
| OnDragEvent        | `UnityEvent<Vector2>` | Event yang terpicu saat touchpad sedang di-drag. |
| OnPointerUpEvent   | `UnityEvent`          | Event yang terpicu saat touchpad dilepas.        |

### Metode

### OnPointerClick

`OnPointerClick(eventData: PointerEventData) → void`

Menangani event klik pada touchpad. Melempar `ArgumentNullException`.

| Parameter | Tipe               | Deskripsi                            |
| --------- | ------------------ | ------------------------------------ |
| eventData | `PointerEventData` | Data yang terkait dengan event drag. |

### OnDrag

`OnDrag(eventData: PointerEventData) → void`

Mengelola perilaku drag, menghitung delta posisi dan membatasinya dalam rentang pergerakan yang ditentukan.
Memicu `OnDragEvent` dengan nilai posisi yang telah dinormalisasi.
Melempar `ArgumentNullException`.

| Parameter | Tipe               | Deskripsi                            |
| --------- | ------------------ | ------------------------------------ |
| eventData | `PointerEventData` | Data yang terkait dengan event drag. |

## UIZepetoPlayerControl

`class`

Class yang menyediakan kontrol berbasis UI untuk karakter local player.

### Metode

### StartMoving

`StartMoving() → void`

Mengatur flag pergerakan karakter local player menjadi `true`.

### Move

`Move(delta: Vector2) → void`

Mengatur arah pergerakan karakter ZEPETO milik local player.

| Parameter | Tipe      |
| --------- | --------- |
| delta     | `Vector2` |

### StopMoving

`StopMoving() → void`

Menghentikan karakter ZEPETO milik local player.

### Jump

`Jump() → void`

Membuat karakter ZEPETO milik local player melompat.

### DoubleJump

`DoubleJump() → void`

Membuat karakter ZEPETO milik local player melompat ganda.

### Update

`Update() → void`

Memperbarui arah pergerakan karakter ZEPETO milik local player.

## InputHelper

`class`

Class utilitas yang dirancang untuk membantu penanganan input.

### Metode

### IsPointerOverUIObjectCurrentPosition

`static IsPointerOverUIObjectCurrentPosition() → boolean`

Menentukan apakah pointer saat ini berada di atas objek UI.

**Mengembalikan:** `boolean` — Mengembalikan `true` jika pointer berada di atas objek UI.

### IsPointerOverUIObject

`static IsPointerOverUIObject(position: Vector2) → boolean`

Memeriksa apakah posisi tertentu pada layar berada di atas elemen UI.

| Parameter | Tipe      | Deskripsi          |
| --------- | --------- | ------------------ |
| position  | `Vector2` | Posisi pada layar. |

**Mengembalikan:** `boolean` — Mengembalikan `true` jika posisi tersebut berada di atas objek UI.

## EventReceiver

`class`

Class yang bertanggung jawab menangani event terkait karakter maupun event umum di dalam ZEPETO World.

### Event

| Nama                             | Tipe                                | Deskripsi                                                                   |
| -------------------------------- | ----------------------------------- | --------------------------------------------------------------------------- |
| OnCharacterClick (static)        | `UnityEvent<string, ZepetoContext>` | Event yang terpicu saat karakter diklik.                                    |
| OnCharacterProfileClick (static) | `UnityEvent<string, ZepetoContext>` | Event yang terpicu saat profil karakter diklik.                             |
| OnClick (static)                 | `UnityEvent<number>`                | Event klik serbaguna yang dapat digunakan untuk berbagai elemen interaktif. |

## TransitionBase

`class`

Class dasar untuk mendefinisikan transisi antar state dalam state machine.

### Properti

| Nama      | Tipe                          | Deskripsi                                                                                              |
| --------- | ----------------------------- | ------------------------------------------------------------------------------------------------------ |
| To        | `TEnum`                       | State tujuan dari transisi tersebut.                                                                   |
| Duration  | `number`                      | Durasi yang dibutuhkan transisi dari awal hingga akhir (dalam detik).                                  |
| Status    | [StateStatus](./#statestatus) | Status dari transisi.                                                                                  |
| IsRunning | `boolean`                     | Menunjukkan apakah transisi saat ini berada pada status `StateStatus.Enter` atau `StateStatus.Update`. |

### Metode

### Check

`Check() → boolean`

Memeriksa apakah kondisi untuk memicu transisi telah terpenuhi.

**Mengembalikan:** `boolean` — `true` jika kondisi transisi terpenuhi.

## State

`class`

Merepresentasikan sebuah state di dalam state machine.

### Properti

| Nama          | Tipe                          | Deskripsi                                        |
| ------------- | ----------------------------- | ------------------------------------------------ |
| OnUpdateState | `Action<TEnum>`               | Fungsi callback untuk menangani pembaruan state. |
| stateType     | `TEnum`                       | Tipe dari state.                                 |
| Status        | [StateStatus](./#statestatus) | Status dari state.                               |

## Transition

`class` · extends [TransitionBase\<TEnum>](./#transitionbase)

Class generik untuk mendefinisikan transisi antar state dalam state machine.

### Properti

| Nama | Tipe    | Deskripsi                      |
| ---- | ------- | ------------------------------ |
| From | `TEnum` | State tempat transisi dimulai. |

## ZepetoCharacter.LoadingStatus

`enum`

Status pemuatan karakter ZEPETO.

| Nama      | Nilai | Deskripsi                               |
| --------- | ----- | --------------------------------------- |
| NotLoaded | 0     | Karakter belum memulai proses pemuatan. |
| Loading   | 1     | Karakter sedang dalam proses pemuatan.  |
| Loaded    | 2     | Karakter telah sepenuhnya dimuat.       |
| Error     | 3     | Terjadi error selama proses pemuatan.   |

## PlayerControlMode

`enum`

| Nama     | Nilai |
| -------- | ----- |
| Default  | 0     |
| WalkOnly | 1     |
| RunOnly  | 2     |
