其他 | 参与此碰撞的另一个 Collider。 |
当一个 GameObject 与另一个 GameObject 发生碰撞时,Unity 会调用 OnTriggerEnter。
OnTriggerEnter 在 FixedUpdate 函数中发生,当两个 GameObject 发生碰撞时。所涉及的 Collider 不一定总是在初始接触点。
注意:两个 GameObject 都必须包含 Collider 组件。其中一个必须启用 Collider.isTrigger,并且包含 Rigidbody。如果两个 GameObject 都启用了 Collider.isTrigger,则不会发生碰撞。同样,如果两个 GameObject 都没有 Rigidbody 组件,也不会发生碰撞。
要使用以下代码示例,请创建一个基本 GameObject,并附加一个 Collider 和一个 Rigidbody 组件。启用 Collider.isTrigger 和 Rigidbody.isKinematic。此 GameObject 将向前移动,直到与另一个 GameObject 发生碰撞。发生碰撞时,方向立即反转。
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; } }