---
title: ZEPETO.Character.Controller
slug: world-sdk-guide/zepetocharactercontroller
docTags: 
createdAt: 2026-08-28T01:30:49.056Z
---

| Type                                                             | Description                                                                                                                                                                                                   |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ZepetoPlayers](./#zepetoplayers)                                | Manager class designed for controlling both ZEPETO player and ZEPETO character.                                                                                                                               |
| [SpawnInfo](./#spawninfo)                                        | Represents the spawning location of a ZEPETO character.                                                                                                                                                       |
| [ZepetoCharacter](./#zepetocharacter)                            | Represents a ZEPETO character that can be loaded and controlled in a ZEPETO World.                                                                                                                            |
| [CameraData](./#cameradata)                                      | Represents the initial configuration for a `ZepetoCamera`.                                                                                                                                                    |
| [CharacterData](./#characterdata)                                | Represents the initial configuration for a `ZepetoCharacter`.                                                                                                                                                 |
| [ControllerData](./#controllerdata)                              | Represents the configuration for a `ZepetoPlayerControl`.                                                                                                                                                     |
| [FloatingUIData](./#floatinguidata)                              | Class responsible for managing character-related UI settings.                                                                                                                                                 |
| [LocalPlayer](./#localplayer)                                    | Class designed to manage the local player's actions, including movement, costume customization, and ZEPETO camera interactions.                                                                               |
| [ZepetoCamera](./#zepetocamera)                                  | Camera control class designed for use within a ZEPETO Character Controller.                                                                                                                                   |
| [ZepetoPlayer](./#zepetoplayer)                                  | Represents a ZEPETO player.                                                                                                                                                                                   |
| [ZepetoPlayerControl](./#zepetoplayercontrol)                    | Manages the input control for a ZEPETO player.                                                                                                                                                                |
| [ZepetoCameraControl](./#zepetocameracontrol)                    | Manages the camera controls in a ZEPETO environment, including input handling for camera movement and zoom.                                                                                                   |
| [CharacterState](./#characterstate)                              | Represents the state of a ZEPETO character.                                                                                                                                                                   |
| [CharacterMoveState](./#charactermovestate)                      | Represents the detailed moving state of a ZEPETO character.                                                                                                                                                   |
| [CharacterJumpState](./#characterjumpstate)                      | Represents the detailed jumping state of a ZEPETO character.                                                                                                                                                  |
| [CharacterLandingState](./#characterlandingstate)                | Represents the detailed landing state of a ZEPETO character.                                                                                                                                                  |
| [KnowSockets](./#knowsockets)                                    | Defines a set of known attachment points, referred to as sockets, on a character.                                                                                                                             |
| [MotionState](./#motionstate)                                    | Class for managing character motion state and configuration.                                                                                                                                                  |
| [CharacterStateMachine](./#characterstatemachine)                | Class responsible for synchronizing the animator with the character state of a ZEPETO character.                                                                                                              |
| [StateMachine](./#statemachine)                                  | `StateMachine` manages the `States`, `Transitions`, and `Events`. By updating states according to specified conditions and elapsed time, it enables the definition and control of diverse states for objects. |
| [StateStatus](./#statestatus)                                    | Represents the possible statuses of a state within a state machine, indicating the current phase of the state's lifecycle.                                                                                    |
| [CustomMotionData](./#custommotiondata)                          | Represents the customized configuration for character motion.                                                                                                                                                 |
| [CharacterShadow](./#charactershadow)                            | Class responsible for managing the shadows of ZEPETO characters.                                                                                                                                              |
| [CameraState](./#camerastate)                                    | Represents the state of a `ZepetoCamera`.                                                                                                                                                                     |
| [ZepetoScreenStick](./#zepetoscreenstick)                        | Class designed to handle stick interactions in the ZEPETO environment.                                                                                                                                        |
| [ZepetoScreenControl](./#zepetoscreencontrol)                    | Abstract class designed for creating UI controls in the ZEPETO environment.                                                                                                                                   |
| [ZepetoScreenButton](./#zepetoscreenbutton)                      | Class designed to handle button interactions in the ZEPETO environment.                                                                                                                                       |
| [ZepetoScreenTouchpad](./#zepetoscreentouchpad)                  | Class designed to handle touchpad interactions in the ZEPETO environment.                                                                                                                                     |
| [UIZepetoPlayerControl](./#uizepetoplayercontrol)                | Class provides UI-based control for the local player's character.                                                                                                                                             |
| [InputHelper](./#inputhelper)                                    | Utility class designed to assist with input handling.                                                                                                                                                         |
| [EventReceiver](./#eventreceiver)                                | Class responsible for handling character-related or general events within the ZEPETO World.                                                                                                                   |
| [TransitionBase](./#transitionbase)                              | Base class for defining transitions between states in a state machine.                                                                                                                                        |
| [State](./#state)                                                | Represents a state within a state machine.                                                                                                                                                                    |
| [Transition](./#transition)                                      | Generic class for defining transitions between states in a state machine.                                                                                                                                     |
| [ZepetoCharacter.LoadingStatus](./#zepetocharacterloadingstatus) | Loading state of the ZEPETO character.                                                                                                                                                                        |
| [PlayerControlMode](./#playercontrolmode)                        | *enum*                                                                                                                                                                                                        |

## ZepetoPlayers

`class`

Manager class designed for controlling both ZEPETO player and ZEPETO character.

### Properties

| Name              | Type                                | Description                                |
| ----------------- | ----------------------------------- | ------------------------------------------ |
| cameraData        | [CameraData](./#cameradata)         | Configuration for a `ZepetoCamera`.        |
| characterData     | [CharacterData](./#characterdata)   | Configuration for a `ZepetoCharacter`.     |
| controllerData    | [ControllerData](./#controllerdata) | Configuration for a `ZepetoPlayerControl`. |
| floatingUIData    | [FloatingUIData](./#floatinguidata) | Character-related UI settings.             |
| instance (static) | [ZepetoPlayers](./#zepetoplayers)   | Singleton instance of `ZepetoPlayers`.     |
| LocalPlayer       | [LocalPlayer](./#localplayer)       | Local player.                              |
| ZepetoCamera      | [ZepetoCamera](./#zepetocamera)     | ZEPETO Camera.                             |

### Events

| Name               | Type                 | Description                                              |
| ------------------ | -------------------- | -------------------------------------------------------- |
| OnAddedLocalPlayer | `UnityEvent`         | Event triggered when a local player instance is created. |
| OnAddedPlayer      | `UnityEvent<string>` | Event triggered when a player instance is created.       |
| OnRemovedPlayer    | `UnityEvent<string>` | Event triggered when a player instance is removed.       |

### Methods

### add\_onInitialized

`static add_onInitialized(value: Action) → void`

Adds handler function for the event invoked when the `ZepetoPlayers` is initialized.

| Parameter | Type     |
| --------- | -------- |
| value     | `Action` |

### remove\_onInitialized

`static remove_onInitialized(value: Action) → void`

Removes handler function for the event invoked when the `ZepetoPlayers` is initialized.

| Parameter | Type     |
| --------- | -------- |
| value     | `Action` |

### HasPlayer

`HasPlayer(id: string) → boolean`

Checks if a player instance associated with the specified session ID exists.

| Parameter | Type     | Description |
| --------- | -------- | ----------- |
| id        | `string` | Session ID  |

**Returns:** `boolean`

### GetPlayer

`GetPlayer(id: string) → ZepetoPlayer`

Retrieves the player instance associated with the specified session ID.

| Parameter | Type     | Description |
| --------- | -------- | ----------- |
| id        | `string` | Session ID  |

**Returns:** [ZepetoPlayer](./#zepetoplayer) — Player object associated with the specified ID.
If a player with the given ID does not exist, this will return `null`.

### GetPlayerWithUserId

`GetPlayerWithUserId(userId: string) → ZepetoPlayer`

Retrieves the player instance associated with the specified user ID.

| Parameter | Type     | Description |
| --------- | -------- | ----------- |
| userId    | `string` | User ID     |

**Returns:** [ZepetoPlayer](./#zepetoplayer) — Player object associated with the specified user ID.

### RemovePlayer

`RemovePlayer(id: string) → void`

Removes the player instance associated with the specified session ID.

| Parameter | Type     | Description |
| --------- | -------- | ----------- |
| id        | `string` | Session ID  |

### DeformDefaultCostume

`DeformDefaultCostume() → void`

Removes the body deformation items worn by every player's character.
Reverts to the default body shape and applies the default ZEPETO outfit.

### DeformDefaultProperties

`DeformDefaultProperties() → void`

Removes the body deformation items worn by every player's character.

## SpawnInfo

`class`

Represents the spawning location of a ZEPETO character.

### Properties

| Name             | Type                      | Description                                |
| ---------------- | ------------------------- | ------------------------------------------ |
| Default (static) | [SpawnInfo](./#spawninfo) | Default spawning location.                 |
| position         | `Vector3`                 | Location of ZEPETO character when spawned. |
| rotation         | `Quaternion`              | Rotation of ZEPETO character when spawned. |

## ZepetoCharacter

`class`

Represents a ZEPETO character that can be loaded and controlled in a ZEPETO World.

### Properties

| Name                | Type                                              | Description                                                                                 |
| ------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| additionalWalkSpeed | `number`                                          | Retrieves the additional walk speed.                                                        |
| additionalRunSpeed  | `number`                                          | Retrieves the additional run speed.                                                         |
| additionalJumpPower | `number`                                          | Retrieves the additional jump power.                                                        |
| constraintRotation  | `boolean`                                         | Determines whether the character's rotation is restricted.                                  |
| ZepetoAnimator      | `Animator`                                        | The animator for the ZEPETO character.                                                      |
| WalkSpeed           | `number`                                          | Retrieves the total walking speed, which is the sum of the base speed and additional speed. |
| RunSpeed            | `number`                                          | Retrieves the total running speed, which is the sum of the base speed and additional speed. |
| JumpPower           | `number`                                          | Retrieves the total jumping power, which is the sum of the base power and additional power. |
| baseWalkSpeed       | `number`                                          | Retrieves the base walking speed.                                                           |
| baseRunSpeed        | `number`                                          | Retrieves the base running speed.                                                           |
| baseJumpPower       | `number`                                          | Retrieves the base jump power.                                                              |
| tryMove             | `boolean`                                         | Indicates whether the character is attempting to move.                                      |
| tryJump             | `boolean`                                         | Indicates whether the character is attempting to jump.                                      |
| tryDoubleJump       | `boolean`                                         | Indicates whether the character is attempting to double jump.                               |
| motionState         | [MotionState](./#motionstate)                     | Motion state and configuration of the character.                                            |
| loadingStatus       | [LoadingStatus](./#zepetocharacterloadingstatus)  | Loading status of the character.                                                            |
| Context             | `ZepetoContext`                                   | ZEPETO Context of the character.                                                            |
| StateMachine        | [CharacterStateMachine](./#characterstatemachine) | State machine of the character.                                                             |
| CurrentState        | [CharacterState](./#characterstate)               | Current state of the character defined in the state machine.                                |
| CurrentStateStatus  | [StateStatus](./#statestatus)                     | Status of the current state of the character, defined in the state machine.                 |
| ElapsedTime         | `number`                                          | Time elapsed in seconds since the character was initialized.                                |

### Events

| Name           | Type                                         | Description                                                                                                                                                                                                 |
| -------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OnChangedState | `UnityEvent<CharacterState, CharacterState>` | Event triggered when the character state changes. Registered listeners receive two parameters: - The new character state. (Type: `CharacterState`) - The previous character state. (Type: `CharacterState`) |
| OnUpdateState  | `UnityEvent<CharacterState>`                 | Event triggered when the character state is in the status of `StateStatus.Update`. Registered listeners receive a single parameter: - The current character state. (Type: `CharacterState`)                 |

### Methods

### SyncStateAnimation

`SyncStateAnimation() → void`

Synchronizes the animator with the current character state of the ZEPETO character.

### ChangeStateAnimation

`ChangeStateAnimation(state: CharacterState) → void`

Plays the animation associated with the provided character state on the animator.

| Parameter | Type                                | Description                                         |
| --------- | ----------------------------------- | --------------------------------------------------- |
| state     | [CharacterState](./#characterstate) | Character state representing the animation to play. |

### ChangeStateAnimation

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

Plays the animation associated with the provided character state on the animator.

| Parameter | Type                                        | Description                                                                      |
| --------- | ------------------------------------------- | -------------------------------------------------------------------------------- |
| state     | [CharacterState](./#characterstate)         | Character state representing the animation to play.                              |
| moveState | [CharacterMoveState](./#charactermovestate) | Optional movement state for the animation when `state` is `CharacterState.Move`. |

### ChangeStateAnimation

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

Plays the animation associated with the provided character state on the animator.

| Parameter | Type                                        | Description                                                                  |
| --------- | ------------------------------------------- | ---------------------------------------------------------------------------- |
| state     | [CharacterState](./#characterstate)         | Character state representing the animation to play.                          |
| jumpState | [CharacterJumpState](./#characterjumpstate) | Optional jump state for the animation when `state` is `CharacterState.Jump`. |

### ChangeStateAnimation

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

Plays the animation associated with the provided character state on the animator.

| Parameter    | Type                                              | Description                                                                        |
| ------------ | ------------------------------------------------- | ---------------------------------------------------------------------------------- |
| state        | [CharacterState](./#characterstate)               | Character state representing the animation to play.                                |
| landingState | [CharacterLandingState](./#characterlandingstate) | Optional landing state for the animation when `state` is `CharacterState.Landing`. |

### Move

`Move(dir: Vector2) → void`

Moves the character in a specified direction.

| Parameter | Type      | Description                                   |
| --------- | --------- | --------------------------------------------- |
| dir       | `Vector2` | Direction in which the character should move. |

### Move

`Move(dir: Vector3) → void`

Moves the character in a specified direction.

| Parameter | Type      | Description                                   |
| --------- | --------- | --------------------------------------------- |
| dir       | `Vector3` | Direction in which the character should move. |

### MoveContinuously

`MoveContinuously(dir: Vector2) → void`

Continuously moves the character in a given direction based on the current orientation it is facing.

| Parameter | Type      | Description                                                                                  |
| --------- | --------- | -------------------------------------------------------------------------------------------- |
| dir       | `Vector2` | Direction in which the character should move, based on the current orientation it is facing. |

### MoveContinuously

`MoveContinuously(dir: Vector3) → void`

Continuously moves the character in a given direction based on the current orientation it is facing.

| Parameter | Type      | Description                                                                                  |
| --------- | --------- | -------------------------------------------------------------------------------------------- |
| dir       | `Vector3` | Direction in which the character should move, based on the current orientation it is facing. |

### MoveToPosition

`MoveToPosition(pos: Vector3) → void`

Moves the character to a specified position.

| Parameter | Type      | Description                               |
| --------- | --------- | ----------------------------------------- |
| pos       | `Vector3` | Destination the character should move to. |

### StopMoving

`StopMoving() → void`

Stops the character's movement.

### Jump

`Jump() → void`

Makes the character jump.

### DoubleJump

`DoubleJump() → void`

Makes the character double jump.

### Teleport

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

Instantly moves the character to the specified transform.

| Parameter | Type         | Description                                                    |
| --------- | ------------ | -------------------------------------------------------------- |
| pos       | `Vector3`    | Position to which the character will be teleported.            |
| rot       | `Quaternion` | Rotation that the character will have after the teleportation. |

### SetGesture

`SetGesture(gesture: AnimationClip) → void`

Plays the character's motion for the specified gesture.

| Parameter | Type            | Description                              |
| --------- | --------------- | ---------------------------------------- |
| gesture   | `AnimationClip` | Gesture that the character will perform. |

### CancelGesture

`CancelGesture() → void`

Stops the playback of the gesture.

### GetSocket

`GetSocket(socket: KnowSockets) → Transform`

Retrieves the `Transform` of a socket of the character.

| Parameter | Type                          | Description                |
| --------- | ----------------------------- | -------------------------- |
| socket    | [KnowSockets](./#knowsockets) | Socket (Attachment point). |

**Returns:** `Transform` — `Transform` component associated with the specified socket.

### GetSocket

`GetSocket(socket: string) → Transform`

Retrieves the `Transform` of a socket of the character.

| Parameter | Type     | Description                            |
| --------- | -------- | -------------------------------------- |
| socket    | `string` | Name of the socket (attachment point). |

**Returns:** `Transform` — `Transform` component associated with the specified socket.

### GetBodyModifierProperties

`GetBodyModifierProperties() → ZepetoPropertyFlag[]`

Retrieves the character properties associated with any body deformation items worn by the character.

**Returns:** `ZepetoPropertyFlag[]` — Character properties associated with the body deformation items worn by the character.

### DeformDefaultProperties

`DeformDefaultProperties() → void`

Removes the body deformation items worn by the character and reverts to the default body shape.

### DeformDefaultCostume

`DeformDefaultCostume() → void`

Removes the body deformation items worn by the character, reverts to the default body shape, and applies the default ZEPETO outfit.

### add\_loadedCharacter

`add_loadedCharacter(value: Action) → void`

Adds a callback function to handle the completion of character loading.

| Parameter | Type     |
| --------- | -------- |
| value     | `Action` |

### remove\_loadedCharacter

`remove_loadedCharacter(value: Action) → void`

Removes a callback function to handle the completion of character loading.

| Parameter | Type     |
| --------- | -------- |
| value     | `Action` |

## CameraData

`class`

Represents the initial configuration for a `ZepetoCamera`.

### Properties

| Name                   | Type         | Description                                                                                             |
| ---------------------- | ------------ | ------------------------------------------------------------------------------------------------------- |
| cameraPrefab           | `GameObject` | Prefab to initialize `ZepetoCamera`.                                                                    |
| maxZoomDistance        | `number`     | Default maximum distance the camera can zoom out from the target.                                       |
| minZoomDistance        | `number`     | Default minimum distance the camera can zoom in towards the target.                                     |
| maxPitch               | `number`     | Maximum vertical angle at which the camera rotates around the target.                                   |
| minPitch               | `number`     | Minimum vertical angle at which the camera rotates around the target.                                   |
| offset                 | `Vector3`    | Default offset of the camera from its target.                                                           |
| lockXAxis              | `boolean`    | Indicates whether the camera's X-axis rotation is locked.                                               |
| layer                  | `LayerMask`  | Defines the layers with which the camera can collide.                                                   |
| collisionTimeThreshold | `number`     | Time threshold for camera collision detection, affecting how quickly the camera responds to collisions. |
| zoomSpeed              | `number`     | Speed of zooming in and out.                                                                            |
| zoomDampSpeed          | `number`     | Interpolation speed for zooming in and out.                                                             |
| rotationSpeed          | `number`     | Speed of rotation.                                                                                      |
| rotationDampSpeed      | `number`     | Interpolation speed for rotation.                                                                       |
| characterCulling       | `boolean`    | Indicates whether to enable character culling to prevent rendering issues at close camera distances.    |
| targetScaleWeight      | `number`     | Weight applied to the target's scale to adjust the camera's position and behavior.                      |

## CharacterData

`class`

Represents the initial configuration for a `ZepetoCharacter`.

### Properties

| Name               | Type                                    | Description                                                                                      |
| ------------------ | --------------------------------------- | ------------------------------------------------------------------------------------------------ |
| slopeLimit         | `number`                                | Steepest degree the character can ascend.                                                        |
| stepOffset         | `number`                                | Maximum vertical height difference the character can move over.                                  |
| skinWidth          | `number`                                | Skin width for collision detection, preventing the character from entering into other colliders. |
| minMoveDistance    | `number`                                | Smallest gap the character can move.                                                             |
| center             | `Vector3`                               | Center point of the character's collider.                                                        |
| radius             | `number`                                | Radius of the character's collider capsule.                                                      |
| height             | `number`                                | Height of the character's collider capsule.                                                      |
| layer              | `LayerMask`                             | Defines the layers with which the character can collide.                                         |
| shadow             | `GameObject`                            | Visual representation of the character's shadow.                                                 |
| animatorController | `RuntimeAnimatorController`             | Animator controller for the character.                                                           |
| walkSpeed          | `number`                                | Walking speed of the character.                                                                  |
| runSpeed           | `number`                                | Running speed of the character.                                                                  |
| jumpPower          | `number`                                | Jump power of the character.                                                                     |
| customMotionData   | [CustomMotionData](./#custommotiondata) | Customized configuration for character motion.                                                   |

## ControllerData

`class`

Represents the configuration for a `ZepetoPlayerControl`.

### Properties

| Name                        | Type               | Description                                                                                                                 |
| --------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| inputAsset                  | `InputActionAsset` | Container for input actions and bindings used to manage complex input setups.                                               |
| eventSystem                 | `GameObject`       | Processes user inputs and conveys them to the UI components. It handles interactions like button clicks, drags, drops, etc. |
| useDefaultVirtualController | `boolean`          | Determines whether to use the default V-Pad.                                                                                |
| useDefaultInputController   | `boolean`          | Determines whether to use the default input controller.                                                                     |
| verticalController          | `GameObject`       | V-pad controller prefab for vertical screen orientation.                                                                    |
| horizontalController        | `GameObject`       | V-pad controller prefab for horizontal screen orientation.                                                                  |

## FloatingUIData

`class`

Class responsible for managing character-related UI settings.

### Properties

| Name                       | Type      | Description                                                                         |
| -------------------------- | --------- | ----------------------------------------------------------------------------------- |
| showNickNameLocalPlayer    | `boolean` | Determines whether to display the local player's character nickname UI.             |
| showNickNameOtherPlayers   | `boolean` | Determines whether to display the character nickname UI for other players.          |
| showBubbleChatLocalPlayer  | `boolean` | Determines whether to display the local player's character bubble chat UI.          |
| showBubbleChatOtherPlayers | `boolean` | Determines whether to display the character bubble chat UI for other players.       |
| useMiniProfileOnApp        | `boolean` | Determines whether to show the mini-profile pop-up UI when clicking on a character. |

## LocalPlayer

`class`

Class designed to manage the local player's actions, including movement, costume customization, and ZEPETO camera interactions.

### Properties

| Name         | Type                            | Description                                                   |
| ------------ | ------------------------------- | ------------------------------------------------------------- |
| movingAxis   | `Transform`                     | Movement central axis of the local player's ZEPETO character. |
| zepetoCamera | [ZepetoCamera](./#zepetocamera) | ZEPETO camera instance associated with the local player.      |
| zepetoPlayer | [ZepetoPlayer](./#zepetoplayer) | ZEPETO player instance associated with the local player.      |

### Methods

### SetCostume

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

Changes the costume of the local player's ZEPETO character. Throws a general `Exception`.

| Parameter           | Type     | Description                                 |
| ------------------- | -------- | ------------------------------------------- |
| itemCode            | `string` | Item ID of the costume.                     |
| complete (optional) | `Action` | Callback function to handle the completion. |

### Jump

`Jump() → void`

Makes the local player's ZEPETO character jump.

### DoubleJump

`DoubleJump() → void`

Makes the local player's ZEPETO character double jump.

### Move

`Move(dir: Vector2) → void`

Moves the local player's ZEPETO character in a specified direction.

| Parameter | Type      | Description                                   |
| --------- | --------- | --------------------------------------------- |
| dir       | `Vector2` | Direction in which the character should move. |

### Move

`Move(dir: Vector3) → void`

Moves the local player's ZEPETO character in a specified direction.

| Parameter | Type      | Description                                   |
| --------- | --------- | --------------------------------------------- |
| dir       | `Vector3` | Direction in which the character should move. |

### StopMoving

`StopMoving() → void`

Stops the local player's ZEPETO character.

## ZepetoCamera

`class`

Camera control class designed for use within a ZEPETO Character Controller.

### Properties

| Name                      | Type                                          | Description                                                                                                              |
| ------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| additionalMaxZoomDistance | `number`                                      | Extra distance added to the default maximum zoom value.                                                                  |
| additionalMinZoomDistance | `number`                                      | Extra distance added to the default minimum zoom value.                                                                  |
| additionalOffset          | `Vector3`                                     | Additional offset applied to the camera's position relative to its target.                                               |
| currentState              | [CameraState](./#camerastate)                 | Retrieves the current camera state.                                                                                      |
| currentStateStatus        | [StateStatus](./#statestatus)                 | Retrieves the status of the current camera state.                                                                        |
| position                  | `Vector3`                                     | Retrieves the current camera position value.                                                                             |
| rotation                  | `Quaternion`                                  | Retrieves the current camera rotation value.                                                                             |
| distance                  | `number`                                      | Distance from the target.                                                                                                |
| cameraParent              | `Transform`                                   | `Transform` of the camera parent object.                                                                                 |
| isFollow                  | `boolean`                                     | Retrieves the flag indicating whether the camera is following the target.                                                |
| StateMachine              | [StateMachine\<CameraState>](./#statemachine) | Retrieves the camera state machine.                                                                                      |
| FollowTarget              | `Transform`                                   | Retrieves the `Transform` of the target. By default, this is set to be the `HEAD_UPPER` of the local player's character. |
| MaxZoomDistance           | `number`                                      | Calculated maximum distance the camera can zoom out from the target.                                                     |
| MinZoomDistance           | `number`                                      | Calculated minimum distance the camera can zoom in towards the target.                                                   |
| LookOffset                | `Vector3`                                     | Calculated offset of the camera from its target.                                                                         |
| LockXAxis                 | `boolean`                                     | Indicates whether the camera's X-axis rotation is locked.                                                                |
| CollisionLayer            | `LayerMask`                                   | Defines the layers with which the camera can collide.                                                                    |
| targetScaleWeight         | `number`                                      | Weight applied to the target's scale to adjust the camera's position and behavior.                                       |
| useCharacterCulling       | `boolean`                                     | Indicates whether to enable character culling to prevent rendering issues at close camera distances.                     |
| zoomSpeed                 | `number`                                      | Speed of zooming in and out.                                                                                             |
| zoomDampSpeed             | `number`                                      | Interpolation speed for zooming in and out.                                                                              |
| rotationSpeed             | `number`                                      | Speed of rotation.                                                                                                       |
| rotationDampSpeed         | `number`                                      | Interpolation speed for rotation.                                                                                        |
| camera                    | `Camera`                                      | Unity `Camera`.                                                                                                          |

### Events

| Name           | Type                                   | Description                                                                                                                                                                                  |
| -------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OnChangedState | `UnityEvent<CameraState, CameraState>` | Event triggered when the camera state changes. Registered listeners receive two parameters: - The new camera state. (Type: `CameraState`) - The previous camera state. (Type: `CameraState`) |
| OnUpdateState  | `UnityEvent<CameraState>`              | Event triggered when the current camera state is in the status of `StateStatus.Update`. Registered listeners receive a single parameter: - The current camera state. (Type: `CameraState`)   |

### Methods

### Create

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

Creates a `ZepetoCamera` instance.

| Parameter | Type                        | Description                                                           |
| --------- | --------------------------- | --------------------------------------------------------------------- |
| camera    | `Camera`                    | Unity `Camera` object to be used as the basis for the `ZepetoCamera`. |
| data      | [CameraData](./#cameradata) | Initial configuration for the `ZepetoCamera`.                         |

**Returns:** [ZepetoCamera](./#zepetocamera) — New instance of `ZepetoCamera`.

### SetFollowTarget

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

Sets the follow target for the camera.

| Parameter                 | Type        | Description                                                                                                                                                                         |
| ------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| target                    | `Transform` | `Transform` representing the object that the camera should follow.                                                                                                                  |
| scaleReference (optional) | `Transform` | `Transform` used as a reference for scaling the camera's follow behavior. If provided, the camera will adjust its distance towards the target based on the scale of this reference. |

### Rotate

`Rotate(delta: Vector2) → void`

Rotates the camera.

| Parameter | Type      | Description   |
| --------- | --------- | ------------- |
| delta     | `Vector2` | Roate amount. |

### DoZoom

`DoZoom(delta: number) → void`

Zooms the camera.

| Parameter | Type     | Description  |
| --------- | -------- | ------------ |
| delta     | `number` | Zoom amount. |

## ZepetoPlayer

`class`

Represents a ZEPETO player.

### Properties

| Name          | Type                                  | Description                                                              |
| ------------- | ------------------------------------- | ------------------------------------------------------------------------ |
| userId        | `string`                              | Player's user ID, a unique randomized ID assigned upon account creation. |
| name          | `string`                              | Player's user name, set by the user in the ZEPETO App.                   |
| character     | [ZepetoCharacter](./#zepetocharacter) | ZEPETO character of the player.                                          |
| isLocalPlayer | `boolean`                             | Indicates whether it is a local player.                                  |

### Methods

### GetProfileTextureAsync

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

Retrieves the profile image of the player. Throws a general `Exception`.

| Parameter | Type                | Description                                              |
| --------- | ------------------- | -------------------------------------------------------- |
| complete  | `Action<Texture2D>` | Callback function to handle the retrieved profile image. |

### Release

`Release() → void`

Releases the ZEPETO player object.

## ZepetoPlayerControl

`class`

Manages the input control for a ZEPETO player.

### Methods

### Create

`static Create(playerActions: PlayerActions) → ZepetoPlayerControl`

Creates a `ZepetoPlayerControl` instance.

| Parameter     | Type            | Description                                                           |
| ------------- | --------------- | --------------------------------------------------------------------- |
| playerActions | `PlayerActions` | Set of input actions to be associated with the `ZepetoPlayerControl`. |

**Returns:** [ZepetoPlayerControl](./#zepetoplayercontrol) — New instance of `ZepetoPlayerControl`.
Instance is attached to a new game object and ready to handle player input actions.

## ZepetoCameraControl

`class`

Manages the camera controls in a ZEPETO environment, including input handling for camera movement and zoom.

### Methods

### Create

`static Create(cameraActions: CameraActions) → ZepetoCameraControl`

Creates a `ZepetoCameraControl` instance.

| Parameter     | Type            | Description                                                                                                                            |
| ------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| cameraActions | `CameraActions` | Set of camera actions to be associated with the `ZepetoCameraControl`. These actions define how the camera will respond to user input. |

**Returns:** [ZepetoCameraControl](./#zepetocameracontrol) — New instance of `ZepetoCameraControl`.
Instance is attached to a new game object and ready to handle camera input actions.

## CharacterState

`enum`

Represents the state of a ZEPETO character.

| Name     | Value | Description                                                                               |
| -------- | ----- | ----------------------------------------------------------------------------------------- |
| Invalid  | 0     | Uninitialized or invalid.                                                                 |
| Idle     | 1     | Character is not engaged in any movement or action.                                       |
| Walk     | 2     | Character is moving at a slow pace.                                                       |
| Run      | 3     | Character is moving quickly.                                                              |
| JumpIdle | 4     | Character is jumping in place.                                                            |
| JumpMove | 5     | Character is jumping in a direction, combining the vertical leap with horizontal motion.  |
| Teleport | 20    | Character is moving from one location to another without traversing the space in between. |
| Gesture  | 30    | Character is performing a gesture.                                                        |
| Move     | 102   | General moving state.                                                                     |
| MoveTurn | 103   | Character is changing the movement direction.                                             |
| Jump     | 104   | General jumping state.                                                                    |
| Stamp    | 106   | Character is performing a stamp.                                                          |
| Falling  | 108   | Character is in free fall.                                                                |
| Landing  | 109   | Character is returning to the ground after falling.                                       |

## CharacterMoveState

`enum`

Represents the detailed moving state of a ZEPETO character.

| Name     | Value | Description            |
| -------- | ----- | ---------------------- |
| None     | -1    | None.                  |
| MoveWalk | 0     | Moving at a slow pace. |
| MoveRun  | 1     | Moving quickly.        |

## CharacterJumpState

`enum`

Represents the detailed jumping state of a ZEPETO character.

| Name       | Value | Description                                                                 |
| ---------- | ----- | --------------------------------------------------------------------------- |
| None       | -1    | None.                                                                       |
| JumpIdle   | 0     | Jumping in place.                                                           |
| JumpMove   | 1     | Jumping in a direction, combining the vertical leap with horizontal motion. |
| JumpDash   | 2     | Jumping quickly.                                                            |
| JumpDouble | 3     | Performing a second jump while already in a jump.                           |

## CharacterLandingState

`enum`

Represents the detailed landing state of a ZEPETO character.

| Name          | Value | Description                           |
| ------------- | ----- | ------------------------------------- |
| None          | -1    | None.                                 |
| LandingSlight | 0     | In a landing with minor impact.       |
| LandingDeep   | 1     | In a landing with significant impact. |
| LandingRoll   | 2     | In a landing roll.                    |

## KnowSockets

`enum`

Defines a set of known attachment points, referred to as sockets, on a character.

| Name        | Value | Description                                      |
| ----------- | ----- | ------------------------------------------------ |
| HEAD\_UPPER | 0     | Represents the top part of the character's head. |

## MotionState

`class`

Class for managing character motion state and configuration.

### Properties

| Name                | Type                                              | Description                                                                          |
| ------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------ |
| useDoubleJump       | `boolean`                                         | Determines whether the character can perform a double jump.                          |
| doubleJumpPower     | `number`                                          | Additional force applied during a double jump.                                       |
| useLanding          | `boolean`                                         | Determines whether to apply landing motion.                                          |
| useLandingRoll      | `boolean`                                         | Determines whether the character performs a roll upon landing.                       |
| landingRollSpeed    | `number`                                          | Gets or sets the character's landing roll speed.                                     |
| useMoveTurn         | `boolean`                                         | Determines whether to play a motion for changing the character's movement direction. |
| gravity             | `number`                                          | Gravitational force applied to the character.                                        |
| currentJumpState    | [CharacterJumpState](./#characterjumpstate)       | Retrieves the current jump state of the character.                                   |
| currentLandingState | [CharacterLandingState](./#characterlandingstate) | Retrieves the current landing state of the character.                                |
| currentMoveState    | [CharacterMoveState](./#charactermovestate)       | Retrieves the current movement state of the character.                               |

## CharacterStateMachine

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

Class responsible for synchronizing the animator with the character state of a ZEPETO character.

### Properties

| Name                     | Type      | Description                                                                                                                                                                                             |
| ------------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| constraintStateAnimation | `boolean` | Determines whether to synchronize the animator with the current character state of the ZEPETO character. If set to `true`, the animator state will not be updated based on the current character state. |

### Methods

### SyncStateAnimation

`SyncStateAnimation() → void`

Synchronizes the animator with the current character state of the ZEPETO character.

### ChangeStateAnimation

`ChangeStateAnimation(state: CharacterState) → void`

Plays the animation associated with the provided character state on the animator.

| Parameter | Type                                | Description                                         |
| --------- | ----------------------------------- | --------------------------------------------------- |
| state     | [CharacterState](./#characterstate) | Character state representing the animation to play. |

## StateMachine

`class`

`StateMachine` manages the `States`, `Transitions`, and `Events`.
By updating states according to specified conditions and elapsed time, it enables the definition and control of diverse states for objects.

### Properties

| Name            | Type                                            | Description                                                                                                                        |
| --------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| OnChangedState  | `Action<TEnum, TEnum>`                          | Event triggered when the camera state changes. Registered listeners receive two parameters: - The new state. - The previous state. |
| Events          | [TransitionBase\<TEnum>\[\]](./#transitionbase) | Provides an array of all the events defined in the state machine.                                                                  |
| Current         | [State\<TEnum>](./#state)                       | Retrieves the current state.                                                                                                       |
| Prev            | [State\<TEnum>](./#state)                       | Retrieves the previous state.                                                                                                      |
| IsRunning       | `boolean`                                       | Indicates whether the state machine is actively processing states and transitions.                                                 |
| stateCount      | `number`                                        | Retrieves the count of states defined in the state machine.                                                                        |
| transitionCount | `number`                                        | Retrieves the count of transitions defined in the state machine.                                                                   |

### Methods

### FindState

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

Finds a state within the state machine and executes a callback on success.

| Parameter | Type                   | Description                                                       |
| --------- | ---------------------- | ----------------------------------------------------------------- |
| state     | `TEnum`                | State to find within the state machine.                           |
| success   | `Action<State<TEnum>>` | Callback function to handle the found `State`.                    |
| failed    | `Action`               | Callback function to handle the case when the state is not found. |

### FindTransitions

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

Finds transitions within the state machine and executes a callback on success.

| Parameter | Type                          | Description                                                          |
| --------- | ----------------------------- | -------------------------------------------------------------------- |
| from      | `TEnum`                       | State from which the transition starts.                              |
| success   | `Action<Transition<TEnum>[]>` | Callback function to handle the found array of `Transition`.         |
| failed    | `Action`                      | Callback function to handle the case when transitions are not found. |

### FindTransition

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

Finds a transition within the state machine and executes a callback on success.

| Parameter | Type                        | Description                                                            |
| --------- | --------------------------- | ---------------------------------------------------------------------- |
| from      | `TEnum`                     | State from which the transition starts.                                |
| to        | `TEnum`                     | State to which the transition will occur.                              |
| success   | `Action<Transition<TEnum>>` | Callback function to handle the found `Transition`.                    |
| failed    | `Action`                    | Callback function to handle the case when the transition is not found. |

### Start

`Start(state: TEnum) → void`

Initiates the processing of the state machine.

| Parameter | Type    | Description                                                   |
| --------- | ------- | ------------------------------------------------------------- |
| state     | `TEnum` | State from which the state machine will start its processing. |

### Update

`Update(deltaTime: number) → void`

Updates the current state and transition of the state machine.

| Parameter | Type     | Description                                           |
| --------- | -------- | ----------------------------------------------------- |
| deltaTime | `number` | Time elapsed in seconds since the last `Update` call. |

### Stop

`Stop() → void`

Stops the processing of the state machine.

### EnterState

`EnterState(state: TEnum) → void`

Transitions the state machine into a specified state.

| Parameter | Type    | Description                                           |
| --------- | ------- | ----------------------------------------------------- |
| state     | `TEnum` | The state to which the state machine will transition. |

### LeaveState

`LeaveState(nextState: TEnum) → void`

The state machine exits the current state.

| Parameter | Type    | Description                                                    |
| --------- | ------- | -------------------------------------------------------------- |
| nextState | `TEnum` | The next state to be handled by the current state's `OnLeave`. |

## StateStatus

`enum`

Represents the possible statuses of a state within a state machine, indicating the current phase of the state's lifecycle.

| Name   | Value | Description                                                   |
| ------ | ----- | ------------------------------------------------------------- |
| Wait   | 0     | The state is inactive and waiting to be entered.              |
| Enter  | 1     | The state is in the process of being entered.                 |
| Update | 2     | The state is active and its logic is being executed.          |
| End    | 3     | The state has completed its active phase and is ready to end. |
| Leave  | 4     | The state is in the process of being exited.                  |

## CustomMotionData

`class`

Represents the customized configuration for character motion.

### Properties

| Name                          | Type      | Description                                                                                      |
| ----------------------------- | --------- | ------------------------------------------------------------------------------------------------ |
| useDoubleJump                 | `boolean` | Determines whether the character can perform a double jump.                                      |
| doubleJumpPower               | `number`  | Additional force applied during a double jump.                                                   |
| useLanding                    | `boolean` | Determines whether to apply landing motion.                                                      |
| useLandingRoll                | `boolean` | Determines whether the character performs a roll upon landing.                                   |
| landingRollSpeed              | `number`  | Playback speed of landing roll motion.                                                           |
| useMoveTurn                   | `boolean` | Determines whether to play a motion for changing the character's movement direction.             |
| gravity                       | `number`  | Gravitational force applied to the character.                                                    |
| walkThreshold                 | `number`  | Minimum input value required to trigger acceleration for walking motion.                         |
| runThreshold                  | `number`  | Minimum input value required to switch motion from walking to running.                           |
| fallingTimeThreshold          | `number`  | Minimum falling time duration to determine if the character has entered a falling state.         |
| fallingSpeedThreshold         | `number`  | Mimum falling speed to determine if the character has entered a falling state.                   |
| landingTimeThreshold          | `number`  | Minimum landed time duration to determine if the character has landed.                           |
| landingSpeedThreshold         | `number`  | Minimum falling speed to determine if the character can perform additional actions upon landing. |
| landingImpactSpeedThreshold   | `number`  | Minimum falling speed to determine if the character experiences a greater impact upon landing.   |
| landingRollSpeedThreshold     | `number`  | Maximum falling speed required to trigger a landing roll.                                        |
| moveTurnAngleThreshold        | `number`  | Minimum turning angle required to trigger a turning motion.                                      |
| moveTurnSpeedThreshold        | `number`  | Minimum moving speed required to trigger a turning motion.                                       |
| moveTurnTimeThreshold         | `number`  | Time duration of the turning motion.                                                             |
| jumpDashSpeedThreshold        | `number`  | Minimum jump speed required to trigger a dash.                                                   |
| walkClipBaseSpeed             | `number`  | Base speed of the walking motion.                                                                |
| stampClipNormalizedTime       | `number`  | Time duration of the stamp motion.                                                               |
| landingClipNormalizedTime     | `number`  | Time duration of the landing motion.                                                             |
| landingRollClipNormalizedTime | `number`  | Time duration of the landing roll motion.                                                        |
| moveTurnClipNormalizedTime    | `number`  | Time duration of the turning motion.                                                             |

## CharacterShadow

`class`

Class responsible for managing the shadows of ZEPETO characters.

### Properties

| Name              | Type        | Description                                                          |
| ----------------- | ----------- | -------------------------------------------------------------------- |
| target            | `Transform` | Represents the object that serves as the transform reference.        |
| autoSyncTransform | `boolean`   | Determines whether to synchronize the shadow position to the target. |

## CameraState

`enum`

Represents the state of a `ZepetoCamera`.

| Name   | Value | Description                         |
| ------ | ----- | ----------------------------------- |
| Idle   | 0     | Camera is not following the target. |
| Follow | 1     | Camera is following the target.     |

## ZepetoScreenStick

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

Class designed to handle stick interactions in the ZEPETO environment.

### Events

| Name               | Type                  | Description                                      |
| ------------------ | --------------------- | ------------------------------------------------ |
| OnPointerDownEvent | `UnityEvent`          | Event triggered when the stick is pressed down.  |
| OnDragEvent        | `UnityEvent<Vector2>` | Event triggered when the stick is being dragged. |
| OnPointerUpEvent   | `UnityEvent`          | Event triggered when the stick is released.      |

### Methods

### OnDrag

`OnDrag(eventData: PointerEventData) → void`

Manages the drag behavior, calculating the position delta and clamping it within the specified movement range.
Triggers `OnDragEvent` with the normalized position value.
Throws `ArgumentNullException`.

| Parameter | Type               | Description                     |
| --------- | ------------------ | ------------------------------- |
| eventData | `PointerEventData` | Data related to the drag event. |

## ZepetoScreenControl

`class`

Abstract class designed for creating UI controls in the ZEPETO environment.

### Methods

### OnPointerDown

`OnPointerDown(eventData: PointerEventData) → void`

Handles events when the user presses a UI control.

| Parameter | Type               | Description                             |
| --------- | ------------------ | --------------------------------------- |
| eventData | `PointerEventData` | Data related to the pointer down event. |

### OnPointerUp

`OnPointerUp(eventData: PointerEventData) → void`

Handles events when the user releases a UI control.

| Parameter | Type               | Description                           |
| --------- | ------------------ | ------------------------------------- |
| eventData | `PointerEventData` | Data related to the pointer up event. |

## ZepetoScreenButton

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

Class designed to handle button interactions in the ZEPETO environment.

### Events

| Name             | Type         | Description                                      |
| ---------------- | ------------ | ------------------------------------------------ |
| OnPointDownEvent | `UnityEvent` | Event triggered when the button is pressed down. |
| OnPointUpEvent   | `UnityEvent` | Event triggered when the button is released.     |

## ZepetoScreenTouchpad

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

Class designed to handle touchpad interactions in the ZEPETO environment.

### Properties

| Name                          | Type             | Description                                                                                     |
| ----------------------------- | ---------------- | ----------------------------------------------------------------------------------------------- |
| canvasGroupTouchPadBackground | `CanvasGroup`    | Canvas group component used to manage the opacity and interaction of the touchpad's background. |
| touchPadBackgroundCurve       | `AnimationCurve` | Animation curve for the touchpad's background fade in and out effect.                           |
| touchHandle                   | `RectTransform`  | `RectTransform` component representing the touch handle.                                        |
| touchHandleAnimator           | `Animator`       | Animator component used to animate the touch handle.                                            |
| touchHandleOrigin             | `RectTransform`  | `RectTransform` for the original position of the touch handle.                                  |
| touchHandleOriginAnimator     | `Animator`       | Animator component for the touch handle's origin point.                                         |

### Events

| Name               | Type                  | Description                                         |
| ------------------ | --------------------- | --------------------------------------------------- |
| OnPointerDownEvent | `UnityEvent`          | Event triggered when the touchpad is pressed down.  |
| OnDragEvent        | `UnityEvent<Vector2>` | Event triggered when the touchpad is being dragged. |
| OnPointerUpEvent   | `UnityEvent`          | Event triggered when the touchpad is released.      |

### Methods

### OnPointerClick

`OnPointerClick(eventData: PointerEventData) → void`

Handles click events on the touchpad. Throws `ArgumentNullException`.

| Parameter | Type               | Description                     |
| --------- | ------------------ | ------------------------------- |
| eventData | `PointerEventData` | Data related to the drag event. |

### OnDrag

`OnDrag(eventData: PointerEventData) → void`

Manages the drag behavior, calculating the position delta and clamping it within the specified movement range.
Triggers `OnDragEvent` with the normalized position value.
Throws `ArgumentNullException`.

| Parameter | Type               | Description                     |
| --------- | ------------------ | ------------------------------- |
| eventData | `PointerEventData` | Data related to the drag event. |

## UIZepetoPlayerControl

`class`

Class provides UI-based control for the local player's character.

### Methods

### StartMoving

`StartMoving() → void`

Sets the moving flag of the local player's character to `true`.

### Move

`Move(delta: Vector2) → void`

Sets the moving direction of local player's ZEPETO character.

| Parameter | Type      |
| --------- | --------- |
| delta     | `Vector2` |

### StopMoving

`StopMoving() → void`

Stops the local player's ZEPETO character.

### Jump

`Jump() → void`

Makes the local player's ZEPETO character jump.

### DoubleJump

`DoubleJump() → void`

Makes the local player's ZEPETO character double jump.

### Update

`Update() → void`

Updates the moving direction of local player's ZEPETO character.

## InputHelper

`class`

Utility class designed to assist with input handling.

### Methods

### IsPointerOverUIObjectCurrentPosition

`static IsPointerOverUIObjectCurrentPosition() → boolean`

Determines if the pointer is currently over a UI object.

**Returns:** `boolean` — Returns `true` if the pointer is over a UI object.

### IsPointerOverUIObject

`static IsPointerOverUIObject(position: Vector2) → boolean`

Checks if the specified position on the screen is over a UI element.

| Parameter | Type      | Description             |
| --------- | --------- | ----------------------- |
| position  | `Vector2` | Position on the screen. |

**Returns:** `boolean` — Returns `true` if the position is over a UI object.

## EventReceiver

`class`

Class responsible for handling character-related or general events within the ZEPETO World.

### Events

| Name                             | Type                                | Description                                                                    |
| -------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------ |
| OnCharacterClick (static)        | `UnityEvent<string, ZepetoContext>` | Event triggered when the character is clicked.                                 |
| OnCharacterProfileClick (static) | `UnityEvent<string, ZepetoContext>` | Event triggered when the character's profile is clicked.                       |
| OnClick (static)                 | `UnityEvent<number>`                | General-purpose click event that can be used for various interactive elements. |

## TransitionBase

`class`

Base class for defining transitions between states in a state machine.

### Properties

| Name      | Type                          | Description                                                                                                 |
| --------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------- |
| To        | `TEnum`                       | State to which the transition will occur.                                                                   |
| Duration  | `number`                      | Time duration the transition should take from start to end (in seconds).                                    |
| Status    | [StateStatus](./#statestatus) | Status of the transition.                                                                                   |
| IsRunning | `boolean`                     | Indicates whether the transition is currently in the status of `StateStatus.Enter` or `StateStatus.Update`. |

### Methods

### Check

`Check() → boolean`

Checks if the conditions for invoking a transition are met.

**Returns:** `boolean` — `true` if the transition's conditions are met.

## State

`class`

Represents a state within a state machine.

### Properties

| Name          | Type                          | Description                                   |
| ------------- | ----------------------------- | --------------------------------------------- |
| OnUpdateState | `Action<TEnum>`               | Callback function to handle the state update. |
| stateType     | `TEnum`                       | Type of the state.                            |
| Status        | [StateStatus](./#statestatus) | Status of the state.                          |

## Transition

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

Generic class for defining transitions between states in a state machine.

### Properties

| Name | Type    | Description                             |
| ---- | ------- | --------------------------------------- |
| From | `TEnum` | State from which the transition starts. |

## ZepetoCharacter.LoadingStatus

`enum`

Loading state of the ZEPETO character.

| Name      | Value | Description                                      |
| --------- | ----- | ------------------------------------------------ |
| NotLoaded | 0     | Character has not yet begun the loading process. |
| Loading   | 1     | Character is currently in the loading process.   |
| Loaded    | 2     | Character has fully loaded.                      |
| Error     | 3     | Error occured during the loading process.        |

## PlayerControlMode

`enum`

| Name     | Value |
| -------- | ----- |
| Default  | 0     |
| WalkOnly | 1     |
| RunOnly  | 2     |

