# PhysicsCallbacks.IPreSolveCallback

> An interface that when implemented by a Object, can be called as a target when a PhysicsShape has PhysicsShape.preSolveCallbacks set to true. The PhysicsWorld the PhysicsShape is in also has to have its PhysicsWorld.preSolveCallbacks set to true.

## Definition

* **Type:** Interface
* **Namespace:** [UnityEngine.LowLevelPhysics2D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d.md)
* **Assembly:** UnityEngine.Physics2DModule

```csharp
public interface PhysicsCallbacks.IPreSolveCallback
```

## Methods

| Method                                                                                                                           | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [OnPreSolve2D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicscallbacks/ipresolvecallback/onpresolve2d.md) | Called when a contact between a pair of shapes is updated. This allows a contact to be disabled before it goes to the solver. A typical use-case would be to implement a one-way behaviour based upon the provided contact. This is only called if the [PhysicsWorld](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsworld.md) has [PhysicsWorld.preSolveCallbacks](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsworld/presolvecallbacks.md) set to true. An event is only produced if one of the [PhysicsShape](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsshape.md)  have [PhysicsShape.preSolveCallbacks](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsshape/presolvecallbacks.md) set to true. This is only called for Awake Dynamic bodies. This is not called for triggers. |
