PhysicsCallbacks.ITriggerCallback
An interface that when implemented, can be called as a target by PhysicsWorld.SendTriggerCallbacks.
Read time 1 minuteLast updated 13 days ago
Definition
- Type: Interface
- Namespace: Unity.U2D.Physics
- Assembly: UnityEngine.PhysicsCore2DModule
public interface PhysicsCallbacks.ITriggerCallback
Remarks
A trigger shape doesn't collide with other shapes. Other shapes pass through it instead. Unity calls and on the main thread after the simulation finishes. For a worked example, refer to the example in the Physics Core 2D examples repository
OnTriggerBegin2DOnTriggerEnd2DPhysicsShapeTriggerCallbackAdditional Resources: PhysicsWorld.SendTriggerCallbacks, PhysicsCallbacks.IContactCallback
Examples
using UnityEngine;using Unity.U2D.Physics;// Add the PhysicsCallbacks.ITriggerCallback interface.public class DetectTriggerOverlap : MonoBehaviour, PhysicsCallbacks.ITriggerCallback{ void Start() { PhysicsWorld world = PhysicsWorld.defaultWorld; // Create a trigger shape that reports overlaps instead of colliding. PhysicsBody triggerBody = world.CreateBody(new PhysicsBodyDefinition { position = new Vector2(0.5f, 8f), type = PhysicsBody.BodyType.Dynamic }); PhysicsShape triggerShape = triggerBody.CreateShape(CircleGeometry.defaultGeometry, new PhysicsShapeDefinition { isTrigger = true, triggerEvents = true }); triggerShape.callbackTarget = this; // Create a static shape for the trigger to overlap. PhysicsBody staticBody = world.CreateBody(new PhysicsBodyDefinition { position = new Vector2(0f, 0f), type = PhysicsBody.BodyType.Static }); staticBody.CreateShape(new CircleGeometry { radius = 3f }, new PhysicsShapeDefinition { triggerEvents = true }); } // Log when the trigger starts overlapping another shape. public void OnTriggerBegin2D(PhysicsEvents.TriggerBeginEvent beginEvent) { Debug.Log("Trigger overlap started."); } // Log when the trigger stops overlapping another shape. public void OnTriggerEnd2D(PhysicsEvents.TriggerEndEvent endEvent) { Debug.Log("Trigger overlap ended."); }}
Methods
Method | Description |
|---|---|
| OnTriggerBegin2D | Called when a PhysicsEvents.TriggerBeginEvent for the object occurs. This will always be called on the main-thread after the simulation has finished. |
| OnTriggerEnd2D | Called when a PhysicsEvents.TriggerEndEvent for the object occurs. This will always be called on the main-thread after the simulation has finished. |