Bug? or nuance with trigger detection?

I have a very simple problem…

I’m fooling around with a third person shooter, and decided it was time to add a “gravity launcher” to play with…

I have a game object “GravityLauncher” with a capsule collider set as a trigger. The gravity launcher is static and does not have a rigid body attached; but everything that should ever get “gravity launched” will have a rigid body attached.

The gravity launcher script is dead simple right now…

using UnityEngine;
using System.Collections;

public class GravityLauncher : MonoBehaviour
{
    public float m_launcherForce;

    void OnTriggerStay(Collider other)
    {
        Debug.Log("hello " + other.name);

        if (other.attachedRigidbody != null)
        {
            other.attachedRigidbody.AddForce(transform.up * m_launcherForce);
        }
    }
}

My first test of the launcher (dropping a box on it) worked fine; “hello cube” is printed, and the box is “gravity launched” into the air.

Unfortunately, my player does not trip any trigger detection (I also tried OnTriggerEnter()). My player’s top game object (called player), has a sphere collider, and a ridigbody component.

It may be your animator. It says that the root motion is controlled by script, which could override any motion provided by the rigidbody.