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

MonoBehaviour.OnCollisionStay(Collision)

建议修改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

参数

other 与此碰撞相关的碰撞数据。

描述

对于每个与另一个碰撞体或刚体接触的碰撞体或刚体,OnCollisionStay 都会在每一帧调用一次。

与 OnTriggerStay 相比,OnCollisionStay 会传递 Collision 类而不是 ColliderCollision 类包含有关接触点、冲击速度等的信息。如果您在函数中不使用 collisionInfo,请省略 collisionInfo 参数,因为这可以避免不必要的计算。

注意:只有当其中一个碰撞体也附加了一个非运动学刚体时,才会发送碰撞事件。碰撞事件将发送到禁用的 MonoBehaviour,以允许根据碰撞启用行为。

对于处于休眠状态的刚体,不会发送碰撞停留事件。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void OnCollisionStay(Collision collisionInfo) { // Debug-draw all contact points and normals foreach (ContactPoint contact in collisionInfo.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } } }

OnCollisionStay 可以是一个协程,只需在函数中使用 yield 语句即可。