Version: 2023.1
LanguageEnglish
  • C#

MonoBehaviour.OnTriggerEnter(Collider)

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

Switch to Manual

Parameters

other A Collider involved in this collision.

Description

When a GameObject collides with another GameObject, Unity calls OnTriggerEnter.

OnTriggerEnter happens on the FixedUpdate function when two GameObjects collide. The Colliders involved are not always at the point of initial contact.

Note: Both GameObjects must contain a Collider component. At least one of them must have Collider.isTrigger enabled, and contain a Rigidbody.
If one of the GameObjects has Collider.isTrigger enabled or both GameObjects do not have a Rigidbody component, no physical collision happens. In both cases, Unity still calls OnTriggerEnter.

For a physical collision to occur, both GameObjects should contain a Collider component with Collider.isTrigger disabled, and contain a Rigidbody component. For more information see Colliders.

using UnityEngine;

public class Example : MonoBehaviour { private float speed = 2f;

//Moves this GameObject 2 units a second in the forward direction void Update() { transform.Translate(Vector3.forward * Time.deltaTime * speed); }

//Upon collision with another GameObject, this GameObject will reverse direction private void OnTriggerEnter(Collider other) { speed = speed * -1; } }