Rigidbody.OnCollisionStay 当碰撞逗留

function OnCollisionStay (collisionInfo : Collision) : void

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 rigidbody attached.

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

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
	void OnCollisionStay(Collision collisionInfo) {
		foreach (ContactPoint contact in collisionInfo.contacts) {
			Debug.DrawRay(contact.point, contact.normal, Color.white);
		}
	}
}
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);
	}
}
最后修改:2011年2月10日 Thursday 22:03

本脚本参考基于Unity 3.4.1f5

英文部分版权属©Unity公司所有,中文部分© Unity圣典 版权所有,未经许可,严禁转载 。