版本: Unity 6 (6000.0)
语言英语
  • C#

Collider.OnTriggerEnter(Collider)

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

参数

其他 参与此碰撞的另一个 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; } }