> 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.ksclientinputpredictorasset.md).

# Class ksClientInputPredictorAsset

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

Predictor asset that creates instances of [ksClientInputPredictor](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksclientinputpredictor.md) when assigned in the entity or room type inspector.

```csharp
public class ksClientInputPredictorAsset : ksPredictor, ksIPredictor
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† Object â† ScriptableObject â† [ksPredictor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md) â† [ksClientInputPredictorAsset](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksclientinputpredictorasset.md)

#### Implements

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

#### Inherited Members

[ksPredictor.Room](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Room), [ksPredictor.Entity](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Entity), [ksPredictor.Player](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Player), [ksPredictor.Time](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Time), [ksPredictor.Controller](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Controller), [ksPredictor.RequiresController](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_RequiresController), [ksPredictor.CreateInstance()](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_CreateInstance), [ksPredictor.Initialize(ksBaseRoom, ksBaseEntity, ksBasePlayer)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Initialize_KS_Reactor_Client_ksBaseRoom_KS_Reactor_Client_ksBaseEntity_KS_Reactor_Client_ksBasePlayer_), [ksPredictor.Initialize()](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Initialize), [ksPredictor.ParentChange(ksBaseEntity, ksBaseEntity)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_ParentChange_KS_Reactor_Client_ksBaseEntity_KS_Reactor_Client_ksBaseEntity_), [ksPredictor.Enabled()](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Enabled), [ksPredictor.Disabled()](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Disabled), [ksPredictor.Detached()](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_Detached), [ksPredictor.IsPredictedProperty(uint)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_IsPredictedProperty_System_UInt32_), [ksPredictor.ServerUpdate(ksReadOnlyTransformState, Dictionary\<uint, ksMultiType>, bool, bool)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_ServerUpdate_KS_Reactor_ksReadOnlyTransformState_System_Collections_Generic_Dictionary_System_UInt32_KS_Reactor_ksMultiType__System_Boolean_System_Boolean_), [ksPredictor.ClientUpdate(ksTransformState, Dictionary\<uint, ksMultiType>)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_ClientUpdate_KS_Reactor_ksTransformState_System_Collections_Generic_Dictionary_System_UInt32_KS_Reactor_ksMultiType__), [ksPredictor.InputUpdate(ksInput)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kspredictor.md#KS_Reactor_Client_Unity_ksPredictor_InputUpdate_KS_Reactor_ksInput_), ScriptableObject.SetDirty(), ScriptableObject.CreateInstance(string), ScriptableObject.CreateInstance(Type), ScriptableObject.CreateInstance\<T>(), Object.GetInstanceID(), Object.GetHashCode(), Object.Equals(object), Object.Instantiate(Object, Vector3, Quaternion), Object.Instantiate(Object, Vector3, Quaternion, Transform), Object.Instantiate(Object), Object.Instantiate(Object, Transform), Object.Instantiate(Object, Transform, bool), Object.Instantiate\<T>(T), Object.Instantiate\<T>(T, Vector3, Quaternion), Object.Instantiate\<T>(T, Vector3, Quaternion, Transform), Object.Instantiate\<T>(T, Transform), Object.Instantiate\<T>(T, Transform, bool), Object.Destroy(Object, float), Object.Destroy(Object), Object.DestroyImmediate(Object, bool), Object.DestroyImmediate(Object), Object.FindObjectsOfType(Type), Object.FindObjectsOfType(Type, bool), Object.FindObjectsByType(Type, FindObjectsSortMode), Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode), Object.DontDestroyOnLoad(Object), Object.DestroyObject(Object, float), Object.DestroyObject(Object), Object.FindSceneObjectsOfType(Type), Object.FindObjectsOfTypeIncludingAssets(Type), Object.FindObjectsOfType\<T>(), Object.FindObjectsByType\<T>(FindObjectsSortMode), Object.FindObjectsOfType\<T>(bool), Object.FindObjectsByType\<T>(FindObjectsInactive, FindObjectsSortMode), Object.FindObjectOfType\<T>(), Object.FindObjectOfType\<T>(bool), Object.FindFirstObjectByType\<T>(), Object.FindAnyObjectByType\<T>(), Object.FindFirstObjectByType\<T>(FindObjectsInactive), Object.FindAnyObjectByType\<T>(FindObjectsInactive), Object.FindObjectsOfTypeAll(Type), Object.FindObjectOfType(Type), Object.FindFirstObjectByType(Type), Object.FindAnyObjectByType(Type), Object.FindObjectOfType(Type, bool), Object.FindFirstObjectByType(Type, FindObjectsInactive), Object.FindAnyObjectByType(Type, FindObjectsInactive), Object.ToString(), Object.name, Object.hideFlags, [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

### RequiresController <a href="#ks_reactor_client_unity_ksclientinputpredictorasset_requirescontroller" id="ks_reactor_client_unity_ksclientinputpredictorasset_requirescontroller"></a>

Does the predictor require a player controller?

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

#### Property Value

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

## Methods

### CreateInstance() <a href="#ks_reactor_client_unity_ksclientinputpredictorasset_createinstance" id="ks_reactor_client_unity_ksclientinputpredictorasset_createinstance"></a>

Creates an instance of the predictor.

```csharp
public override ksIPredictor CreateInstance()
```

#### Returns

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

Predictor instance.

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

Logs an error stating the predictor cannot be used directly and to call [CreateInstance](#KS_Reactor_Client_Unity_ksClientInputPredictorAsset_CreateInstance) instead.

```csharp
public override bool Initialize()
```

#### Returns

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

false
