I just have a simple test scene with a Rigidbody box on a BoxCollider floor. Not even a mesh. But the OnCollisionStay message seems to only fire for a second or two and then it stops. What’s the deal here?
If your rigid body stops moving it falls asleep. Try adding this script to the GameObject with the RigidBody to test if this is your issue:
using UnityEngine;
using System.Collections;
/// <summary>
/// A simple script to keep a Rigidbody alive. This simply adds an
/// extremely small value to this transform's local X rotation.
///
/// Use this for testing triggers with stationary colliders
/// </summary>
public class StayAwake : MonoBehaviour
{
/// <summary>
/// Runs on frame update
/// </summary>
private void Update()
{
transform.Rotate(Time.time * 0.00000001f, 0, 0);
}
}