I’ve attached a child plane with a rigidbody and sphere collider to my player and checked “is trigger.” I have the OnCollisionEnter method in my script (which is attached to the plane), but even without any if statements and just putting in a bool that changes to true if something enters it, it still doesn’t work.
The things that could enter it are enemy units with rigidbodies and capsule colliders. I even tried giving the enemy units sphere colliders on top of the capsule in case they needed matching colliders for it to work.
I can’t figure out for the life of me how to get triggers working with colliders. Can someone please help me out? Thanks 
EDIT: Ok I realized I was using OnCollisionEnter when I should’ve been using OnTriggerEnter, but that still doesn’t work (nor does OnTriggerStay)… =(
Here are some things that can give you some insight.
First, go to your OnTriggerEnter() function and put a Debug.Log() statement as the VERY first line in the function to let you know if it’s triggering at all. It may be that it’s triggering, but just not doing anything. In my own code, I’ve found this is most often the case with a trigger not working.
Try turning on gizmos in your game window (top right corner) and watch them to make sure that they are actually colliding. Also, I think I remember someone saying that if a trigger is moving and collides with a stationary collider, it may not work. I haven’t tested this, so this might be totally untrue, but it’s something to possibly consider.
If you’re trying to implement an “aggro radius” from your player to an enemy, it may be both easier and less computationally expensive just to check the distance from the player to the enemy. The type of collider doesn’t matter - any collider will interact with any other collider. Case in point is the capsule collider that the CharacterController uses, which works correctly with the terrain collider.
Not sure if you’ve tried this yet, but you might experiment around with the CharacterController object to see if it does what you want. They’ve improved it a great deal in U3.
Here’s some quick, dirty, and untested mono code to check distances:
// set AggroDistance to the range you want the enemy to attack at
public float AggroDistance;
// call this externally with the other object as its argument
// returns true if in range, false otherwise
public bool InAggroRange(GameObject Enemy) {
if (Vector3.Distance(Enemy, gameObject) < AggroDistance) {
return true;
}
return false;
}
Hope that helps!