UnityAPI手册-2019.4官网版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Collider.OnCollisionEnter(Collision)
# [Collider](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider.html).OnCollisionEnter(Collision) ## 参数 | other | 与该碰撞事件关联的 Collision 数据。 | | ------- | ------------------------------------- | ## 描述 当该碰撞体/刚体已开始接触另一个刚体/碰撞体时,调用 OnCollisionEnter。 与 [OnTriggerEnter](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider.OnTriggerEnter.html) 相反,[OnCollisionEnter](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider.OnCollisionEnter.html) 被传入 [Collision](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collision.html) 类,而不是 Collider。 [Collision](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collision.html) 类包含有关接触点和冲击速度等的信息。 注意:如果其中一个碰撞体还附加了非运动学刚体,则仅发送 Collision 事件。碰撞事件将发送到已禁用的 MonoBehaviours,以便允许启用 Behaviours 来响应碰撞。 ``` using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { AudioSource audioSource; void Start() { audioSource = GetComponent<AudioSource>(); } void OnCollisionEnter(Collision collision) { foreach (ContactPoint contact in collision.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } if (collision.relativeVelocity.magnitude > 2) audioSource.Play(); } } ``` 另一个示例: ``` // A grenade // - instantiates an explosion Prefab when hitting a surface // - then destroys itself using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform explosionPrefab; void OnCollisionEnter(Collision collision) { ContactPoint contact = collision.contacts[0]; Quaternion rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); Vector3 position = contact.point; Instantiate(explosionPrefab, position, rotation); Destroy(gameObject); } } ```
da
2022年5月25日 10:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码