public void UnregisterListener(IBC_CollisionEventListener obj)
 {
     BC_CollisionEventHolder.Unregister <IBC_CollisionEnterListener>(obj, this.colEnters);
     BC_CollisionEventHolder.Unregister <IBC_CollisionStayListener>(obj, this.colStays);
     BC_CollisionEventHolder.Unregister <IBC_CollisionExitListener>(obj, this.colExits);
     BC_CollisionEventHolder.Unregister <IBC_TriggerEnterListener>(obj, this.trigEnters);
     BC_CollisionEventHolder.Unregister <IBC_TriggerStayListener>(obj, this.trigStays);
     BC_CollisionEventHolder.Unregister <IBC_TriggerExitListener>(obj, this.trigExits);
 }
 static List <T> Register <T>(IBC_CollisionEventListener obj, List <T> list) where T : IBC_CollisionEventListener
 {
     if (obj is T)
     {
         if (list == null)
         {
             list = new List <T>();
         }
         list.Add((T)((object)obj));
     }
     return(list);
 }
 static bool Unregister <T>(IBC_CollisionEventListener obj, List <T> list) where T : IBC_CollisionEventListener
 {
     return(obj is T && list != null && list.Remove((T)((object)obj)));
 }