返回介绍

MonoBehaviour.OnCollisionStay(Collision) 当停留碰撞

发布于 2019-12-18 15:38:03 字数 1622 浏览 1232 评论 0 收藏 0

Description 描述

OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider.

当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionStay将会在每一帧被调用。

In contrast to OnTriggerStay, OnCollisionStay is passed the Collision class and not a Collider. The Collision class contains information about contact points, impact velocity etc. If you don't use collisionInfo in the function, leave out the collisionInfo parameter as this avoids unneccessary calculations. Note that collision events are only sent if one of the colliders also has a non-kinematic rigid body attached.

相对于OnTriggerExit,OnCollisionExit传递的是Collision类而不是Collider。Collision包含接触点,碰撞速度等细节。如果在函数中不使用碰撞信息,省略collisionInfo参数以避免不必要的运算.注意如果碰撞体附加了一个非动力学刚体,只发送碰撞事件。

JavaScript:

function OnCollisionStay(collisionInfo : Collision) {
	// Debug-draw all contact points and normals
	for (var contact : ContactPoint in collisionInfo.contacts)
		Debug.DrawRay(contact.point, contact.normal, Color.white);
}

C#:

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);
        }
    }
}

OnCollisionStay can be a co-routine, simply use the yield statement in the function.

OnCollisionStay 可以被用作协同程序,在函数中调用yield语句。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文