UnityAPI手册-2019.4官网版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Collider.OnTriggerEnter(Collider)
# [Collider](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider.html).OnTriggerEnter(Collider) ## 参数 | other | 该碰撞中涉及的其他 Collider。 | | ------- | ------------------------------- | ## 描述 [GameObject](https://docs.unity3d.com/cn/2019.4/ScriptReference/GameObject.html) 与另一个 [GameObject](https://docs.unity3d.com/cn/2019.4/ScriptReference/GameObject.html) 碰撞时,Unity 会调用 [OnTriggerEnter](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider.OnTriggerEnter.html)。 当两个 GameObjects 碰撞时,OnTriggerEnter 会在 FixedUpdate 函数上发生。涉及的碰撞体并不始终在初始接触点处。 **注意:** 两个 GameObjects 都必须包含 Collider 组件。其中一个必须启用 Collider.isTrigger,并包含 Rigidbody。如果两个 GameObjects 都启用了 Collider.isTrigger,则不会发生碰撞。如果两个 GameObjects 都没有 Rigidbody 组件,情况同样如此。 要使用下面的代码示例,请创建原始 [GameObject](https://docs.unity3d.com/cn/2019.4/ScriptReference/GameObject.html),并向它附加 [Collider](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider.html) 和 [Rigidbody](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody.html) 组件。启用 Collider.isTrigger 和 Rigidbody.isKinematic。原始游戏对象碰撞时,将调用 OnTriggerEnter。在本例中,方向立即反转。当 GameObject 退出碰撞时,Unity 调用 OnTriggerExit,更改颜色。 ``` using UnityEngine; public class exampleScript : MonoBehaviour { private float speed = 2f; Renderer rend; int colorPicker = 0; private void Start() { rend = GetComponent<Renderer>(); transform.position = Vector3.zero; transform.rotation = Quaternion.Euler(0, 90, 0); //Create two GameObjects to act as walls GameObject leftWall = GameObject.CreatePrimitive(PrimitiveType.Cube); GameObject rightWall = GameObject.CreatePrimitive(PrimitiveType.Cube); //Move the walls to the correct positions leftWall.transform.position = new Vector3(-10, 0, 0); rightWall.transform.position = new Vector3(10, 0, 0); //Scale the walls leftWall.transform.localScale = new Vector3(1, 2, 1); rightWall.transform.localScale = new Vector3(1, 2, 1); } //moves the Primitive 2 units a second in the forward direction void Update() { transform.Translate(Vector3.forward * Time.deltaTime * speed); } //When the Primitive collides with the walls, it will reverse direction private void OnTriggerEnter(Collider other) { speed = speed * -1; colorPicker = Random.Range(0, 10); } //When the Primitive exits the collision, it will change Color private void OnTriggerExit(Collider other) { switch (colorPicker) { case 0: rend.material.color = Color.white; break; case 1: rend.material.color = Color.cyan; break; case 2: rend.material.color = Color.blue; break; case 3: rend.material.color = Color.black; break; case 4: rend.material.color = Color.red; break; case 5: rend.material.color = Color.green; break; case 6: rend.material.color = Color.grey; break; case 7: rend.material.color = Color.magenta; break; case 8: rend.material.color = Color.yellow; break; case 9: rend.material.color = Color.gray; break; } } } ```
da
2022年5月25日 10:34
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码