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

# Class ksLinearPredictorAsset

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

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

```csharp
[CreateAssetMenu(menuName = "Reactor/Linear Predictor", order = 80)]
public class ksLinearPredictorAsset : 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) â† [ksLinearPredictorAsset](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kslinearpredictorasset.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)

## Constructors

### ksLinearPredictorAsset() <a href="#ks_reactor_client_unity_kslinearpredictorasset__ctor" id="ks_reactor_client_unity_kslinearpredictorasset__ctor"></a>

Constructor

```csharp
public ksLinearPredictorAsset()
```

## Fields

### PositionCorrectionRate <a href="#ks_reactor_client_unity_kslinearpredictorasset_positioncorrectionrate" id="ks_reactor_client_unity_kslinearpredictorasset_positioncorrectionrate"></a>

```csharp
[Tooltip("Position-correction interpolation rate per second.")]
public float PositionCorrectionRate
```

#### Field Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### PredictedProperties <a href="#ks_reactor_client_unity_kslinearpredictorasset_predictedproperties" id="ks_reactor_client_unity_kslinearpredictorasset_predictedproperties"></a>

```csharp
[Tooltip("Which properties to predict and how to predict them.")]
public ksLinearPredictorAsset.PropertyBehaviour[] PredictedProperties
```

#### Field Value

[ksLinearPredictorAsset](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kslinearpredictorasset.md).[PropertyBehaviour](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.kslinearpredictorasset/ks.reactor.client.unity.kslinearpredictorasset.propertybehaviour.md)\[]

### RotationCorrectionRate <a href="#ks_reactor_client_unity_kslinearpredictorasset_rotationcorrectionrate" id="ks_reactor_client_unity_kslinearpredictorasset_rotationcorrectionrate"></a>

```csharp
[Tooltip("Rotation-correction interpolation rate in degrees per second.")]
public float RotationCorrectionRate
```

#### Field Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### ScaleCorrectionRate <a href="#ks_reactor_client_unity_kslinearpredictorasset_scalecorrectionrate" id="ks_reactor_client_unity_kslinearpredictorasset_scalecorrectionrate"></a>

```csharp
[Tooltip("Scale-correction interpolation rate per second.")]
public float ScaleCorrectionRate
```

#### Field Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

## Methods

### CreateInstance() <a href="#ks_reactor_client_unity_kslinearpredictorasset_createinstance" id="ks_reactor_client_unity_kslinearpredictorasset_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_kslinearpredictorasset_initialize" id="ks_reactor_client_unity_kslinearpredictorasset_initialize"></a>

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

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

#### Returns

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

false
