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

# Class ksPhysicsAdaptor

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

[ksBasePhysics](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md) implementation that uses Unity physics.

```csharp
public class ksPhysicsAdaptor : ksBasePhysics
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† [ksBasePhysics](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md) â† [ksPhysicsAdaptor](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksphysicsadaptor.md)

#### Inherited Members

[ksBasePhysics.AutoSync](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_AutoSync), [ksBasePhysics.Gravity](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_Gravity), [ksBasePhysics.m\_gravity](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_m_gravity), [ksBasePhysics.SyncAll()](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_SyncAll), [ksBasePhysics.SyncTransforms()](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_SyncTransforms), [ksBasePhysics.RaycastAny(ksRaycastParams)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_RaycastAny_KS_Reactor_ksRaycastParams_), [ksBasePhysics.RaycastNearest(ksRaycastParams, out ksRaycastResult)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_RaycastNearest_KS_Reactor_ksRaycastParams_KS_Reactor_ksRaycastResult__), [ksBasePhysics.Raycast(ksRaycastParams)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_Raycast_KS_Reactor_ksRaycastParams_), [ksBasePhysics.SweepAny(ksSweepParams)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_SweepAny_KS_Reactor_ksSweepParams_), [ksBasePhysics.SweepNearest(ksSweepParams, out ksSweepResult)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_SweepNearest_KS_Reactor_ksSweepParams_KS_Reactor_ksSweepResult__), [ksBasePhysics.Sweep(ksSweepParams)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_Sweep_KS_Reactor_ksSweepParams_), [ksBasePhysics.OverlapAny(ksOverlapParams)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_OverlapAny_KS_Reactor_ksOverlapParams_), [ksBasePhysics.Overlap(ksOverlapParams)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_Overlap_KS_Reactor_ksOverlapParams_), [ksBasePhysics.ComputePenetration(ksICollider, ksVector3, ksQuaternion, ksICollider, ksVector3, ksQuaternion, out ksVector3, out float)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_ComputePenetration_KS_Reactor_ksICollider_KS_Reactor_ksVector3_KS_Reactor_ksQuaternion_KS_Reactor_ksICollider_KS_Reactor_ksVector3_KS_Reactor_ksQuaternion_KS_Reactor_ksVector3__System_Single__), [ksBasePhysics.GetClosestPoint(ksVector3, ksICollider)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_GetClosestPoint_KS_Reactor_ksVector3_KS_Reactor_ksICollider_), [ksBasePhysics.GetClosestPoint(ksVector3, ksICollider, ksVector3, ksQuaternion)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_GetClosestPoint_KS_Reactor_ksVector3_KS_Reactor_ksICollider_KS_Reactor_ksVector3_KS_Reactor_ksQuaternion_), [ksBasePhysics.CreateSimulationQueryParams(ksIEntity, bool)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_CreateSimulationQueryParams_KS_Reactor_ksIEntity_System_Boolean_), [ksBasePhysics.Depenetrate(ksOverlapParams, out ksVector3, ksBasePhysics.DepenetrateCallback, float)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_Depenetrate_KS_Reactor_ksOverlapParams_KS_Reactor_ksVector3__KS_Reactor_ksBasePhysics_DepenetrateCallback_System_Single_), [ksBasePhysics.SweepAndSlide(ksSweepSlideParams, out ksVector3)](/reactor/api-reference/ks.reactor/ks.reactor.ksbasephysics.md#KS_Reactor_ksBasePhysics_SweepAndSlide_KS_Reactor_ksSweepSlideParams_KS_Reactor_ksVector3__), [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

### Gravity <a href="#ks_reactor_client_unity_ksphysicsadaptor_gravity" id="ks_reactor_client_unity_ksphysicsadaptor_gravity"></a>

Gravity

```csharp
public ksVector3 Gravity { get; set; }
```

#### Property Value

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

## Methods

### ComputePenetration(ksICollider, ksVector3, ksQuaternion, ksICollider, ksVector3, ksQuaternion, out ksVector3, out float) <a href="#ks_reactor_client_unity_ksphysicsadaptor_computepenetration_ks_reactor_ksicollider_ks_reactor_ksvect" id="ks_reactor_client_unity_ksphysicsadaptor_computepenetration_ks_reactor_ksicollider_ks_reactor_ksvect"></a>

Compute the minimal translation required to separate the given colliders apart at specified poses.

```csharp
public override bool ComputePenetration(ksICollider collider0, ksVector3 position0, ksQuaternion rotation0, ksICollider collider1, ksVector3 position1, ksQuaternion rotation1, out ksVector3 direction, out float distance)
```

#### Parameters

`collider0` [ksICollider](/reactor/api-reference/ks.reactor/ks.reactor.ksicollider.md)

First collider to test.

`position0` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Position of collider 0.

`rotation0` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Rotation of collider 0.

`collider1` [ksICollider](/reactor/api-reference/ks.reactor/ks.reactor.ksicollider.md)

Secoond collider to test.

`position1` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Position of collider 1.

`rotation1` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Rotation of collider 1.

`direction` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Direction along which the translation required to separate `collider0` from `collider1` is minimal.

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

The distance along the direction that is required to separate `collider0` from `collider1`.

#### Returns

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

### GetClosestPoint(ksVector3, ksICollider) <a href="#ks_reactor_client_unity_ksphysicsadaptor_getclosestpoint_ks_reactor_ksvector3_ks_reactor_ksicollider" id="ks_reactor_client_unity_ksphysicsadaptor_getclosestpoint_ks_reactor_ksvector3_ks_reactor_ksicollider"></a>

Get the closest point on a collider to another point. Currently supported colliders: box, sphere, capsule, convexmesh.

```csharp
public override ksVector3 GetClosestPoint(ksVector3 point, ksICollider collider)
```

#### Parameters

`point` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Point to measure from.

`collider` [ksICollider](/reactor/api-reference/ks.reactor/ks.reactor.ksicollider.md)

Collider to get the closest point from.

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Closest point on the collider.

### GetClosestPoint(ksVector3, ksICollider, ksVector3, ksQuaternion) <a href="#ks_reactor_client_unity_ksphysicsadaptor_getclosestpoint_ks_reactor_ksvector3_ks_reactor_ksicollider" id="ks_reactor_client_unity_ksphysicsadaptor_getclosestpoint_ks_reactor_ksvector3_ks_reactor_ksicollider"></a>

Get the closest point on a collider to another point. Currently supported colliders: box, sphere, capsule, convexmesh.

```csharp
public override ksVector3 GetClosestPoint(ksVector3 point, ksICollider collider, ksVector3 position, ksQuaternion rotation)
```

#### Parameters

`point` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Point to measure from.

`collider` [ksICollider](/reactor/api-reference/ks.reactor/ks.reactor.ksicollider.md)

Collider to get the closest point from.

`position` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Collider position

`rotation` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Collider rotation

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Closest point on the collider.

### Overlap(ksOverlapParams) <a href="#ks_reactor_client_unity_ksphysicsadaptor_overlap_ks_reactor_ksoverlapparams" id="ks_reactor_client_unity_ksphysicsadaptor_overlap_ks_reactor_ksoverlapparams"></a>

Overlap query.

```csharp
public override List<ksOverlapResult> Overlap(ksOverlapParams args)
```

#### Parameters

`args` [ksOverlapParams](/reactor/api-reference/ks.reactor/ks.reactor.ksoverlapparams.md)

Overlap parameters

#### Returns

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

List of overlap results.

### OverlapAny(ksOverlapParams) <a href="#ks_reactor_client_unity_ksphysicsadaptor_overlapany_ks_reactor_ksoverlapparams" id="ks_reactor_client_unity_ksphysicsadaptor_overlapany_ks_reactor_ksoverlapparams"></a>

Overlap query that checks for any overlap.

```csharp
public override bool OverlapAny(ksOverlapParams args)
```

#### Parameters

`args` [ksOverlapParams](/reactor/api-reference/ks.reactor/ks.reactor.ksoverlapparams.md)

Overlap parameters

#### Returns

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

True if anything was overlapping.

### Raycast(ksRaycastParams) <a href="#ks_reactor_client_unity_ksphysicsadaptor_raycast_ks_reactor_ksraycastparams" id="ks_reactor_client_unity_ksphysicsadaptor_raycast_ks_reactor_ksraycastparams"></a>

Raycast query that returns the nearest blocking hit and any touching hits before the blocking hit.

```csharp
public override ksQueryHitResults<ksRaycastResult> Raycast(ksRaycastParams args)
```

#### Parameters

`args` [ksRaycastParams](/reactor/api-reference/ks.reactor/ks.reactor.ksraycastparams.md)

Raycast parameters

#### Returns

[ksQueryHitResults](/reactor/api-reference/ks.reactor/ks.reactor.ksqueryhitresults-1.md)<[ksRaycastResult](/reactor/api-reference/ks.reactor/ks.reactor.ksraycastresult.md)>

Raycast results

### RaycastAny(ksRaycastParams) <a href="#ks_reactor_client_unity_ksphysicsadaptor_raycastany_ks_reactor_ksraycastparams" id="ks_reactor_client_unity_ksphysicsadaptor_raycastany_ks_reactor_ksraycastparams"></a>

Raycast query that checks if anything was hit.

```csharp
public override bool RaycastAny(ksRaycastParams args)
```

#### Parameters

`args` [ksRaycastParams](/reactor/api-reference/ks.reactor/ks.reactor.ksraycastparams.md)

Raycast parameters

#### Returns

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

True if the raycast hit anything.

### RaycastNearest(ksRaycastParams, out ksRaycastResult) <a href="#ks_reactor_client_unity_ksphysicsadaptor_raycastnearest_ks_reactor_ksraycastparams_ks_reactor_ksrayc" id="ks_reactor_client_unity_ksphysicsadaptor_raycastnearest_ks_reactor_ksraycastparams_ks_reactor_ksrayc"></a>

Raycast query that finds the nearest hit.

```csharp
public override bool RaycastNearest(ksRaycastParams args, out ksRaycastResult hit)
```

#### Parameters

`args` [ksRaycastParams](/reactor/api-reference/ks.reactor/ks.reactor.ksraycastparams.md)

Raycast parameters

`hit` [ksRaycastResult](/reactor/api-reference/ks.reactor/ks.reactor.ksraycastresult.md)

Set to the nearest hit.

#### Returns

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

True if the raycast hit anything.

### Sweep(ksSweepParams) <a href="#ks_reactor_client_unity_ksphysicsadaptor_sweep_ks_reactor_kssweepparams" id="ks_reactor_client_unity_ksphysicsadaptor_sweep_ks_reactor_kssweepparams"></a>

Sweep query that returns the nearest blocking hit and any touching hits before the blocking hit.

```csharp
public override ksQueryHitResults<ksSweepResult> Sweep(ksSweepParams args)
```

#### Parameters

`args` [ksSweepParams](/reactor/api-reference/ks.reactor/ks.reactor.kssweepparams.md)

Sweep parameters

#### Returns

[ksQueryHitResults](/reactor/api-reference/ks.reactor/ks.reactor.ksqueryhitresults-1.md)<[ksSweepResult](/reactor/api-reference/ks.reactor/ks.reactor.kssweepresult.md)>

List of sweep results

### SweepAny(ksSweepParams) <a href="#ks_reactor_client_unity_ksphysicsadaptor_sweepany_ks_reactor_kssweepparams" id="ks_reactor_client_unity_ksphysicsadaptor_sweepany_ks_reactor_kssweepparams"></a>

Sweep query that checks if anything was hit.

```csharp
public override bool SweepAny(ksSweepParams args)
```

#### Parameters

`args` [ksSweepParams](/reactor/api-reference/ks.reactor/ks.reactor.kssweepparams.md)

Sweep arguments

#### Returns

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

True if the sweep hit anything.

### SweepNearest(ksSweepParams, out ksSweepResult) <a href="#ks_reactor_client_unity_ksphysicsadaptor_sweepnearest_ks_reactor_kssweepparams_ks_reactor_kssweepres" id="ks_reactor_client_unity_ksphysicsadaptor_sweepnearest_ks_reactor_kssweepparams_ks_reactor_kssweepres"></a>

Sweep query that finds the nearest hit.

```csharp
public override bool SweepNearest(ksSweepParams args, out ksSweepResult hit)
```

#### Parameters

`args` [ksSweepParams](/reactor/api-reference/ks.reactor/ks.reactor.kssweepparams.md)

Sweep arguments

`hit` [ksSweepResult](/reactor/api-reference/ks.reactor/ks.reactor.kssweepresult.md)

Set to the nearest hit.

#### Returns

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

True if the sweep hit anything.

### SyncAll() <a href="#ks_reactor_client_unity_ksphysicsadaptor_syncall" id="ks_reactor_client_unity_ksphysicsadaptor_syncall"></a>

Apply entity transform updates to the physics simulation now rather than waiting for the next simulation step.

```csharp
public override void SyncAll()
```

### SyncTransforms() <a href="#ks_reactor_client_unity_ksphysicsadaptor_synctransforms" id="ks_reactor_client_unity_ksphysicsadaptor_synctransforms"></a>

Apply entity transform updates to the physics simulation now rather than waiting for the next simulation step.

```csharp
public override void SyncTransforms()
```

### TryGetKSCollider(Collider, out ksIUnityCollider, out ksEntityComponent) <a href="#ks_reactor_client_unity_ksphysicsadaptor_trygetkscollider_unityengine_collider_ks_reactor_client_uni" id="ks_reactor_client_unity_ksphysicsadaptor_trygetkscollider_unityengine_collider_ks_reactor_client_uni"></a>

Gets the [ksIUnityCollider](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksiunitycollider.md) and [ksEntityComponent](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md) for a collider.

```csharp
public static void TryGetKSCollider(Collider unityCollider, out ksIUnityCollider ksCollider, out ksEntityComponent entityComponent)
```

#### Parameters

`unityCollider` Collider

Is assigned the [ksIUnityCollider](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksiunitycollider.md) found on the entity.

`ksCollider` [ksIUnityCollider](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksiunitycollider.md)

`entityComponent` [ksEntityComponent](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md)

Is assigned the [ksEntityComponent](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksentitycomponent.md) found on the entity.
