Unity3D圣典3.3版本-中文版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Collision.contacts 接触点列表
# [Collision](Collision.html).contacts 接触点列表 var *contacts* : [ContactPoint](../ContactPoint/ContactPoint.html)[] *Description* 描述 The contact points generated by the physics engine. 接触点由物理引擎产生。 Every contact contains a contact point, normal and the two colliders that collided (see [ContactPoint](../ContactPoint/ContactPoint.html)). From inside [OnCollisionStay](../Collider/Collider.OnCollisionStay.html) or [OnCollisionEnter](../Collider/Collider.OnCollisionEnter.html) you can always be sure that contacts has at least one element. 每一个接触(contact)包含一个接触点、法线和两个碰撞的碰撞器(看 [ContactPoint](../ContactPoint/ContactPoint.html))。在 [OnCollisionStay](../Collider/Collider.OnCollisionStay.html) 或 [OnCollisionEnter](../Collider/Collider.OnCollisionEnter.html) 里你确保 contacts 至少有一个元素。 * [C#](#) * [JavaScript](#) ``` using UnityEngine; using System.Collections; public class example : MonoBehaviour { void OnCollisionStay(Collision collision) { foreach (ContactPoint contact in collision.contacts) { print(contact.thisCollider.name + " hit " + contact.otherCollider.name); Debug.DrawRay(contact.point, contact.normal, Color.white); } } } ``` ``` function OnCollisionStay(collision : Collision) { // Check if the collider we hit has a rigidbody // Then apply the force //检查如果碰撞的碰撞器有刚体,然后应用力 for (var contact : ContactPoint in collision.contacts) { print(contact.thisCollider.name + " hit " + contact.otherCollider.name); // Visualize the contact point //可视化接触点 Debug.DrawRay(contact.point, contact.normal, Color.white); } } ``` * [C#](#) * [JavaScript](#) ``` using UnityEngine; using System.Collections; public class example : MonoBehaviour { public Transform explosionPrefab; void OnCollisionEnter(Collision collision) { ContactPoint contact = collision.contacts[0]; Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal); Vector3 pos = contact.point; Instantiate(explosionPrefab, pos, rot); Destroy(gameObject); } } ``` ``` // A grenade //一个手榴弹 // - instantiates a explosion prefab when hitting a surface // - then destroys itself //当碰到表面时,实例化一个爆炸预设 var explosionPrefab : Transform; function OnCollisionEnter(collision : Collision) { // Rotate the object so that the y-axis faces along the normal of the surface //旋转物体,y轴面沿着表面的法线。 var contact = collision.contacts[0]; var rot = Quaternion.FromToRotation(Vector3.up, contact.normal); var pos = contact.point; Instantiate(explosionPrefab, pos, rot); // Destroy the projectile //销毁手榴弹 Destroy (gameObject); } ```
da
2022年5月17日 17:54
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码