API reference
API reference
Select your platform
No SDKs available
No versions available

AvatarSystem Class

Extends SystemBase
Modifiers: final
This System handles the visibility of the controllers and hands.
This System comes default with Meta Spatial SDK and operates on entities with AvatarAttachment and Controller components. It interacts with Transform, Mesh, Box, CreatorVisibility, and Visible components to manage avatar representation in the scene.

Signature

class AvatarSystem : SystemBase

Constructors

AvatarSystem ()
Signature
constructor()

Properties

executeCount : Long
[Get]
The number of times this system's SystemBase.execute method has been called by the system manager. Incremented automatically before each execution cycle. Useful for performance monitoring.
Signature
var executeCount: Long
systemManager : SystemManager
[Get][Set]
The SystemManager that this system is registered with. Provides access to other systems and the scene. Initialized during system registration.
Signature
lateinit var systemManager: SystemManager

Methods

associateSystemManager ( systemManager )
Associates this system with a SystemManager. Called during registration. Throws RuntimeException if the system is already associated — each system instance can only belong to one manager.
Signature
fun associateSystemManager(systemManager: SystemManager)
Parameters
systemManager: SystemManager  The system manager that will own and execute this system.
delete ( entity )
Called when an AvatarSystem.delete is removed from the scene. Override to clean up any per-entity state this system maintains, such as cached components, tracking maps, or native resource handles.
Signature
open override fun delete(entity: Entity)
Parameters
entity: Entity
destroy ()
Called during system shutdown to release all resources held by this system. Override to dispose of native handles, close streams, and clear any global state accumulated during the session.
Signature
open fun destroy()
equals ( other )
Checks if this system is equal to another object. Two systems are considered equal if they are the same instance or share the same Kotlin class, regardless of configuration state.
Signature
open operator override fun equals(other: Any?): Boolean
Parameters
other: Any?  The object to compare with.
Returns
Boolean  True if the other object is the same system instance or the same system class.
execute ()
Called each frame by the SystemManager to perform this system's per-tick logic. Override to query entities with relevant components and apply updates.
Signature
open override fun execute()
getDependencies ()
The system must run after the PlayerBodyAttachmentSystem and before the MeshCreationSystem.
Signature
open override fun getDependencies(): SystemDependencies?
getScene ()
Returns the Scene that this system operates within. Delegates to the associated SystemManager to retrieve the active scene instance.
Signature
fun getScene(): Scene
Returns
Scene  The scene containing the entities and rendering state for this system.
getShowControllers ()
Get the current visibility state of the controllers.
Signature
fun getShowControllers(): Boolean
Returns
Boolean  Whether the controllers are currently visible.
getShowHands ()
Get the current visibility state of the hands.
Signature
fun getShowHands(): Boolean
Returns
Boolean  Whether the hands are currently visible.
hashCode ()
Returns the hash code of this system, based on its Kotlin class identity. Consistent with the SystemBase.equals implementation — systems of the same class produce the same hash code.
Signature
open override fun hashCode(): Int
Returns
Int  The hash code derived from this system's Kotlin class.
setShowControllers ( showControllers )
Set the visibility of the controllers.
Signature
fun setShowControllers(showControllers: Boolean = true)
Parameters
showControllers: Boolean  Whether to show the controllers.
setShowHands ( showHands )
Set the visibility of the hands. By default, we show the hands wrapping around the controllers. If hands are set as visible while controllers are set as invisible, the hands will mimic natural poses while using the controller.
Signature
fun setShowHands(showHands: Boolean = true)
Parameters
showHands: Boolean  Whether to show the hands.