I want to have a GameObject that will have a trigger (interpenetration is desired) volume (say a sphere) that extends a radius past it. then when ever an item on a given layer (say Player) touches that trigger volume have the object the trigger volume is attached to add that item to a list. my thought was that I could place a OnCollisionEnter() on this GameObject, and then whenever the trigger volume touches another object if the object has a specific script add the object to a list, and when it leaves the trigger remove it. when I try this: it does not work as intended. and the only collision that is registered is the one on the actual meshCollider.
how can I achieve this functionality?
Your description is hard for me to fully understand. You use the word "trigger" which has a specific meaning in Unity, but it does not appear you are using triggers. For what you appear to be trying to do, you might take a look at: [Physics.OverlapSphere()][1] It will return a list of all the colliders within a specific distance of a position. [1]: http://docs.unity3d.com/Documentation/ScriptReference/Physics.OverlapSphere.html
– robertbuthough wouldn't that do a distance calculation on every game object in the scene to see if it is inside the radius, and say I have 20 of these RadiusEffectObjects, and 100 other objects in the scene then that is a minimum of 2,380 distance checks per physics update. I think I will just go with my current implementation by placing the OnTriggerEnter()/OnTriggerExit() on the PlayerObject, and then placing something like an AddToList()/RemoveFromList() on the RadiusEffectObject.
– gardian06