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

Rigidbody.OnCollisionStay(Collision)

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

描述

OnCollisionStay 在每帧中针对每个与另一个 Collider 或 Rigidbody 发生接触的 Collider 或 Rigidbody 调用一次。

与 OnTriggerStay 相反,OnCollisionStay 传递的是 Collision 类,而不是 Collider。 Collision 类包含有关接触点、冲击速度等信息。如果您在函数中不使用 collisionInfo,请省略 collisionInfo 参数,这样可以避免不必要的计算。 注意:仅当其中一个 Collider 还附加了一个非运动学刚体时,才会发送碰撞事件。碰撞事件会发送到禁用的 MonoBehaviour,以允许根据碰撞来启用行为。睡眠刚体不会发送碰撞保持事件。

// Debug-draw all contact points and normals

using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour { void OnCollisionStay(Collision collisionInfo) { foreach (ContactPoint contact in collisionInfo.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } } }