Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


OnCollisionStay(Collision)

OnCollisionStay is called once per frame for every Collider or Rigidbody that touches another Collider or Rigidbody.
Read time 1 minuteLast updated 10 days ago

Definition

OnCollisionStay()

public void OnCollisionStay(Collision collision)

Parameters

collision

Remarks

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: Collision events are only sent if one of the colliders also has a non-kinematic rigidbody attached. Collision events will be sent to disabled MonoBehaviours, to allow enabling Behaviours in response to collisions. Collision stay events are not sent for sleeping Rigidbodies.
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 can be a co-routine, simply use the yield statement in the function.