- AddExplosionForce
- AddForceAtPosition
- AddForce
- AddRelativeForce
- AddRelativeTorque
- AddTorque
- angularDrag
- angularVelocity
- centerOfMass
- ClosestPointOnBounds
- collisionDetectionMode
- detectCollisions
- drag
- freezeRotation
- GetPointVelocity
- GetRelativePointVelocity
- inertiaTensorRotation
- inertiaTensor
- interpolation
- isKinematic
- IsSleeping
- mass
- maxAngularVelocity
- MovePosition
- MoveRotation
- OnCollisionEnter
- OnCollisionExit
- OnCollisionStay
- position
- rotation
- SetDensity
- sleepAngularVelocity
- sleepVelocity
- Sleep
- solverIterationCount
- SweepTestAll
- SweepTest
- useConeFriction
- useGravity
- velocity
- WakeUp
- worldCenterOfMass
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);
}
}