> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentity.md).

# Class ksEntity

Namespace: [KS.Reactor.Client.Unity](/reactor/api-reference/ks.reactor.client.unity.md)\
Assembly: KSUnity-Source.dll

Unity implementation of ksBaseEntity. Entities are objects create, updated, and destroyed by a server and replicated to clients.

```csharp
public class ksEntity : ksBaseEntity, ksIEntity
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† [ksBaseEntity](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md) â† [ksEntity](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentity.md)

#### Implements

[ksIEntity](/reactor/api-reference/ks.reactor/ks.reactor.ksientity.md)

#### Inherited Members

[ksBaseEntity.OnPropertyChange](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OnPropertyChange), [ksBaseEntity.OnRPC](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OnRPC), [ksBaseEntity.OnControllerChange](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OnControllerChange), [ksBaseEntity.OnOwnershipChange](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OnOwnershipChange), [ksBaseEntity.OnConfirmPlayerSpawn](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OnConfirmPlayerSpawn), [ksBaseEntity.OnDestroy](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OnDestroy), [ksBaseEntity.Id](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Id), [ksBaseEntity.Type](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Type), [ksBaseEntity.AssetId](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_AssetId), [ksBaseEntity.SyncGroup](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_SyncGroup), [ksBaseEntity.OwnerId](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OwnerId), [ksBaseEntity.OwnerPermissions](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OwnerPermissions), [ksBaseEntity.IsOwner](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_IsOwner), [ksBaseEntity.Parent](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Parent), [ksBaseEntity.Children](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Children), [ksBaseEntity.ForEachDescendant(Action\<ksBaseEntity>)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_ForEachDescendant_System_Action_KS_Reactor_Client_ksBaseEntity__), [ksBaseEntity.Transform](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Transform), [ksBaseEntity.Transform2D](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Transform2D), [ksBaseEntity.ServerTransform](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_ServerTransform), [ksBaseEntity.ServerTransform2D](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_ServerTransform2D), [ksBaseEntity.Properties](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Properties), [ksBaseEntity.PredictionEnabled](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_PredictionEnabled), [ksBaseEntity.Predictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Predictor), [ksBaseEntity.IsNonInputPredictorAssigned](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_IsNonInputPredictorAssigned), [ksBaseEntity.NonInputPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_NonInputPredictor), [ksBaseEntity.IsInputPredictorAssigned](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_IsInputPredictorAssigned), [ksBaseEntity.InputPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_InputPredictor), [ksBaseEntity.RigidBody](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_RigidBody), [ksBaseEntity.RigidBody2D](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_RigidBody2D), [ksBaseEntity.CharacterController](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_CharacterController), [ksBaseEntity.PlayerController](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_PlayerController), [ksBaseEntity.IsPermanent](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_IsPermanent), [ksBaseEntity.CollisionFilter](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_CollisionFilter), [ksBaseEntity.IsWaitingForPlayerSpawnResponse](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_IsWaitingForPlayerSpawnResponse), [ksBaseEntity.SpawnedByLocalPlayer](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_SpawnedByLocalPlayer), [ksBaseEntity.IsDestroyed](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_IsDestroyed), [ksBaseEntity.IsDestroyedLocally](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_IsDestroyedLocally), [ksBaseEntity.LocalOwnerTeleported](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_LocalOwnerTeleported), [ksBaseEntity.BaseRoom](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_BaseRoom), [ksBaseEntity.Initialize(ksEntityId, uint, ksTransformState, ksBaseRoom, ksSpawnParams)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Initialize_KS_Reactor_ksEntityId_System_UInt32_KS_Reactor_ksTransformState_KS_Reactor_Client_ksBaseRoom_KS_Reactor_ksSpawnParams_), [ksBaseEntity.Initialize(ksSpawnParams)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Initialize_KS_Reactor_ksSpawnParams_), [ksBaseEntity.CleanUp()](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_CleanUp), [ksBaseEntity.UpdateTransform(ksReadOnlyTransformState.DirtyFlag)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_UpdateTransform_KS_Reactor_ksReadOnlyTransformState_DirtyFlag_), [ksBaseEntity.UpdateEntityTransform()](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_UpdateEntityTransform), [ksBaseEntity.GetTransformUpdate(ksTransformState)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_GetTransformUpdate_KS_Reactor_ksTransformState_), [ksBaseEntity.CreateNonInputPredictor(out ksIPredictor)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_CreateNonInputPredictor_KS_Reactor_Client_ksIPredictor__), [ksBaseEntity.CreateInputPredictor(out ksIPredictor)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_CreateInputPredictor_KS_Reactor_Client_ksIPredictor__), [ksBaseEntity.CallRPC(uint, params ksMultiType\[\])](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_CallRPC_System_UInt32_KS_Reactor_ksMultiType___), [ksBaseEntity.AttachScripts()](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_AttachScripts), [ksBaseEntity.InitializeScripts()](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_InitializeScripts), [ksBaseEntity.Destroy(ksDestroyReason)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Destroy_KS_Reactor_Client_ksDestroyReason_), [ksBaseEntity.InvokeRPC(uint, ksMultiType\[\])](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_InvokeRPC_System_UInt32_KS_Reactor_ksMultiType___), [ksBaseEntity.OwnershipChanged()](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_OwnershipChanged), [ksBaseEntity.PlayerSpawnConfirmed()](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_PlayerSpawnConfirmed), [ksBaseEntity.RegisterRPC(uint, ksBaseEntity.RPCHandler)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_RegisterRPC_System_UInt32_KS_Reactor_Client_ksBaseEntity_RPCHandler_), [ksBaseEntity.UnregisterRPC(uint, ksBaseEntity.RPCHandler)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_UnregisterRPC_System_UInt32_KS_Reactor_Client_ksBaseEntity_RPCHandler_), [ksBaseEntity.HasOwnerPermission(ksOwnerPermissions)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_HasOwnerPermission_KS_Reactor_ksOwnerPermissions_), [ksBaseEntity.GetPropertyServerValue(uint)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_GetPropertyServerValue_System_UInt32_), [ksBaseEntity.GetColliders()](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_GetColliders), [object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Properties

### ApplyTransformUpdates <a href="#ks_reactor_client_unity_ksentity_applytransformupdates" id="ks_reactor_client_unity_ksentity_applytransformupdates"></a>

If false, the entity's transform update are not applied to the game object. You can still access the smoothed entity transform using [Transform](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_Transform) or the server transform using [ServerTransform](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseentity.md#KS_Reactor_Client_ksBaseEntity_ServerTransform).

```csharp
public bool ApplyTransformUpdates { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### DestroyWithServer <a href="#ks_reactor_client_unity_ksentity_destroywithserver" id="ks_reactor_client_unity_ksentity_destroywithserver"></a>

If true then the Unity game object will be destroyed when this entity is destroyed by the server.

```csharp
public bool DestroyWithServer { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### GameObject <a href="#ks_reactor_client_unity_ksentity_gameobject" id="ks_reactor_client_unity_ksentity_gameobject"></a>

GameObject that represents this entity.

```csharp
public GameObject GameObject { get; }
```

#### Property Value

GameObject

### IsDestroyedLocally <a href="#ks_reactor_client_unity_ksentity_isdestroyedlocally" id="ks_reactor_client_unity_ksentity_isdestroyedlocally"></a>

Was the game object for this entity destroyed?

```csharp
public override bool IsDestroyedLocally { get; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### IsSceneEntity <a href="#ks_reactor_client_unity_ksentity_issceneentity" id="ks_reactor_client_unity_ksentity_issceneentity"></a>

```csharp
public bool IsSceneEntity { get; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### RigidBody <a href="#ks_reactor_client_unity_ksentity_rigidbody" id="ks_reactor_client_unity_ksentity_rigidbody"></a>

```csharp
public ksUnityRigidBody RigidBody { get; set; }
```

#### Property Value

[ksUnityRigidBody](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksunityrigidbody.md)

### RigidBody2D <a href="#ks_reactor_client_unity_ksentity_rigidbody2d" id="ks_reactor_client_unity_ksentity_rigidbody2d"></a>

```csharp
public ksUnityRigidBody2DView RigidBody2D { get; set; }
```

#### Property Value

[ksUnityRigidBody2DView](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksunityrigidbody2dview.md)

### Room <a href="#ks_reactor_client_unity_ksentity_room" id="ks_reactor_client_unity_ksentity_room"></a>

Room the entity belongs to.

```csharp
public ksRoom Room { get; }
```

#### Property Value

[ksRoom](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksroom.md)

## Methods

### AttachScripts() <a href="#ks_reactor_client_unity_ksentity_attachscripts" id="ks_reactor_client_unity_ksentity_attachscripts"></a>

Finds [ksEntityScript](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentityscript.md)s on the entity's game object and adds them to the [ksScriptsComponent%602](/reactor/api-reference/ks.reactor.client.unity.md#KS_Reactor_Client_Unity_ksScriptsComponent_602) and calls their [Attached](/reactor/api-reference/ks.reactor.client.unity.md#KS_Reactor_Client_Unity_ksMonoScript_602_Attached) method.

```csharp
protected override void AttachScripts()
```

### CreateInputPredictor(out ksIPredictor) <a href="#ks_reactor_client_unity_ksentity_createinputpredictor_ks_reactor_client_ksipredictor" id="ks_reactor_client_unity_ksentity_createinputpredictor_ks_reactor_client_ksipredictor"></a>

Creates a predictor to use when the entity has a player controller with input prediction enabled. If [OverrideControllerPredictor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md#KS_Reactor_Client_Unity_ksEntityComponent_OverrideControllerPredictor) is true, creates an instance from [ControllerPredictor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md#KS_Reactor_Client_Unity_ksEntityComponent_ControllerPredictor). Otherwise if the room type exists, uses [DefaultEntityControllerPredictor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksroomtype.md#KS_Reactor_Client_Unity_ksRoomType_DefaultEntityControllerPredictor). Otherwise calls the base function to return a [ksLinearPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kslinearpredictor.md).

```csharp
protected override bool CreateInputPredictor(out ksIPredictor predictor)
```

#### Parameters

`predictor` [ksIPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksipredictor.md)

The predictor created.

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

False if the predictor could not be created because the component is null.

### CreateNonInputPredictor(out ksIPredictor) <a href="#ks_reactor_client_unity_ksentity_createnoninputpredictor_ks_reactor_client_ksipredictor" id="ks_reactor_client_unity_ksentity_createnoninputpredictor_ks_reactor_client_ksipredictor"></a>

Creates a predictor to use when the entity does not have a player controller with input prediction enabled. If [OverridePredictor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md#KS_Reactor_Client_Unity_ksEntityComponent_OverridePredictor) is true, creates an instance from [Predictor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md#KS_Reactor_Client_Unity_ksEntityComponent_Predictor). Otherwise if the room type exists, uses [DefaultEntityPredictor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksroomtype.md#KS_Reactor_Client_Unity_ksRoomType_DefaultEntityPredictor). Otherwise calls the base function to return a [ksLinearPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.kslinearpredictor.md).

```csharp
protected override bool CreateNonInputPredictor(out ksIPredictor predictor)
```

#### Parameters

`predictor` [ksIPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksipredictor.md)

The predictor created

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

False if the predictor could not be created because the component is null.

### Destroy(ksDestroyReason) <a href="#ks_reactor_client_unity_ksentity_destroy_ks_reactor_client_ksdestroyreason" id="ks_reactor_client_unity_ksentity_destroy_ks_reactor_client_ksdestroyreason"></a>

Cleans up the entity and returns it to a pool of reusable entity resources.

```csharp
protected override void Destroy(ksDestroyReason reason)
```

#### Parameters

`reason` [ksDestroyReason](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksdestroyreason.md)

The reason the entity was destroyed.

### DestroyCollider(Collider) <a href="#ks_reactor_client_unity_ksentity_destroycollider_unityengine_collider" id="ks_reactor_client_unity_ksentity_destroycollider_unityengine_collider"></a>

Destroys a collider and its associated [ksColliderData](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kscolliderdata.md).

```csharp
public void DestroyCollider(Collider collider)
```

#### Parameters

`collider` Collider

Collider to destroy

### GetColliderData(Collider, bool) <a href="#ks_reactor_client_unity_ksentity_getcolliderdata_unityengine_collider_system_boolean" id="ks_reactor_client_unity_ksentity_getcolliderdata_unityengine_collider_system_boolean"></a>

Get the collider data component for a collider. Optionally creates collider data is none is found and `collider` is one of the supported collider types.

```csharp
public ksColliderData GetColliderData(Collider collider, bool create = true)
```

#### Parameters

`collider` Collider

Collider to get collider data for.

`create` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

True to create the collider data if it is not found and `collider` is one of the supported collider types.

#### Returns

[ksColliderData](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kscolliderdata.md)

Collider data for the collider. Null if the collider is not one of the supported types or `create` was false and none was found.

### GetColliders() <a href="#ks_reactor_client_unity_ksentity_getcolliders" id="ks_reactor_client_unity_ksentity_getcolliders"></a>

Gets the entity's colliders.

```csharp
public override List<ksICollider> GetColliders()
```

#### Returns

[List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)<[ksICollider](/reactor/api-reference/ks.reactor/ks.reactor.ksicollider.md)>

List of the entity's colliders.

### GetTransformUpdate(ksTransformState) <a href="#ks_reactor_client_unity_ksentity_gettransformupdate_ks_reactor_kstransformstate" id="ks_reactor_client_unity_ksentity_gettransformupdate_ks_reactor_kstransformstate"></a>

Updates `transform` with the values from the game object's transform, setting dirty flags for values that are different. This is called on locally-owned entities with the [TRANSFORM](/reactor/api-reference/ks.reactor/ks.reactor.ksownerpermissions.md#KS_Reactor_ksOwnerPermissions_TRANSFORM) permission to get a transform update to send to the server.

```csharp
protected override void GetTransformUpdate(ksTransformState transform)
```

#### Parameters

`transform` [ksTransformState](/reactor/api-reference/ks.reactor/ks.reactor.kstransformstate.md)

Transform to update.

### Initialize(ksSpawnParams) <a href="#ks_reactor_client_unity_ksentity_initialize_ks_reactor_ksspawnparams" id="ks_reactor_client_unity_ksentity_initialize_ks_reactor_ksspawnparams"></a>

Creates or finds the game object for the entity if it is not already set, and initializes the entity with data from the game object's entity component and physics components.

```csharp
protected override void Initialize(ksSpawnParams spawnParams)
```

#### Parameters

`spawnParams` [ksSpawnParams](/reactor/api-reference/ks.reactor/ks.reactor.ksspawnparams.md)

If the entity was spawned by the local player, this is the spawn parameters object used to spawn the entity, otherwise it is null.

### InitializeScripts() <a href="#ks_reactor_client_unity_ksentity_initializescripts" id="ks_reactor_client_unity_ksentity_initializescripts"></a>

Initializes all [ksEntityScript](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentityscript.md) attached to this entity.

```csharp
protected override void InitializeScripts()
```

### InvokeRPC(uint, ksMultiType\[]) <a href="#ks_reactor_client_unity_ksentity_invokerpc_system_uint32_ks_reactor_ksmultitype" id="ks_reactor_client_unity_ksentity_invokerpc_system_uint32_ks_reactor_ksmultitype"></a>

Invoke managed RPCs on all entity scripts.

```csharp
protected override bool InvokeRPC(uint rpcId, ksMultiType[] rpcArgs)
```

#### Parameters

`rpcId` [uint](https://learn.microsoft.com/dotnet/api/system.uint32)

ID of the RPC to invoke

`rpcArgs` [ksMultiType](/reactor/api-reference/ks.reactor/ks.reactor.ksmultitype.md)\[]

Arguments to pass to the RPC handlers

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

True if the method invoked any RPC handler

### OwnershipChanged() <a href="#ks_reactor_client_unity_ksentity_ownershipchanged" id="ks_reactor_client_unity_ksentity_ownershipchanged"></a>

Called when the owner or owner permissions change. If the entity has a rigid body, sets [ForceKinematic](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksbaseunityrigidbody.md#KS_Reactor_Client_Unity_ksBaseUnityRigidBody_ForceKinematic) to false if the local player owns the entity with the [TRANSFORM](/reactor/api-reference/ks.reactor/ks.reactor.ksownerpermissions.md#KS_Reactor_ksOwnerPermissions_TRANSFORM) permission, otherwise sets it to true.

```csharp
protected override void OwnershipChanged()
```

### PlayerSpawnConfirmed() <a href="#ks_reactor_client_unity_ksentity_playerspawnconfirmed" id="ks_reactor_client_unity_ksentity_playerspawnconfirmed"></a>

Called when an entity spawned by the local player is confirmed as spawned by the server. Sets [EntityId](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md#KS_Reactor_Client_Unity_ksEntityComponent_EntityId) to the entity's id.

```csharp
protected override void PlayerSpawnConfirmed()
```

### Recycle() <a href="#ks_reactor_client_unity_ksentity_recycle" id="ks_reactor_client_unity_ksentity_recycle"></a>

```csharp
[Obsolete]
public void Recycle()
```

### UpdateTransform(DirtyFlag) <a href="#ks_reactor_client_unity_ksentity_updatetransform_ks_reactor_ksreadonlytransformstate_dirtyflag" id="ks_reactor_client_unity_ksentity_updatetransform_ks_reactor_ksreadonlytransformstate_dirtyflag"></a>

Applies the entity's transform to the entity's game object.

```csharp
protected override void UpdateTransform(ksReadOnlyTransformState.DirtyFlag flags = DirtyFlag.ALL)
```

#### Parameters

`flags` [ksReadOnlyTransformState](/reactor/api-reference/ks.reactor/ks.reactor.ksreadonlytransformstate.md).[DirtyFlag](/reactor/api-reference/ks.reactor/ks.reactor.ksreadonlytransformstate/ks.reactor.ksreadonlytransformstate.dirtyflag.md)

Flags indicating which tranform components (position/rotation/scale) to update.
