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))); }