public virtual T AddComponent <T>() where T : BaseCoreMgr, new() { var component = BaseCoreMgr.Create <T>(); componets.Add(component); if (component is IOnAnimTrigger) { triggersComponets.Add(component as IOnAnimTrigger); } if (component.NeedUpdate) { updateComponets.Add(component); } if (component.NeedLateUpdate) { lateUpdateComponets.Add(component); } if (component.NeedFixedUpdate) { fixedUpdateComponets.Add(component); } if (component.NeedGUI) { guiComponets.Add(component); } if (component.NeedGameLogicTurn) { needGameLogicTurnComponets.Add(component); } component.OnBeAdded(this); return((T)component); }