Version: Unity 6.7 Beta (6000.7)
LanguageEnglish
  • C#

ITriggerCallback

interface in Unity.U2D.Physics

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

An interface that when implemented, can be called as a target by PhysicsWorld.SendTriggerCallbacks.

A trigger shape doesn't collide with other shapes. Other shapes pass through it instead. Unity calls OnTriggerBegin2D and OnTriggerEnd2D on the main thread after the simulation finishes. For a worked example, refer to the PhysicsShapeTriggerCallback example in the Physics Core 2D examples repository

Additional resources: PhysicsWorld.SendTriggerCallbacks, IContactCallback

 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."); } }

Public Methods

Method Description
OnTriggerBegin2D Called when a TriggerBeginEvent for the object occurs. This will always be called on the main-thread after the simulation has finished.
OnTriggerEnd2D Called when a TriggerEndEvent for the object occurs. This will always be called on the main-thread after the simulation has finished.