private void OnComponentRemoving(Component cmp) { // Notify Components ICmpInitializable cmpInit = cmp as ICmpInitializable; if (cmpInit != null) { cmpInit.OnShutdown(Component.ShutdownContext.RemovingFromGameObject); } foreach (Component c in this.compList) { if (!c.Active || c == cmp) { continue; } ICmpComponentListener cTemp = c as ICmpComponentListener; if (cTemp != null) { cTemp.OnComponentRemoving(cmp); } } // Public event if (this.eventComponentRemoving != null) { this.eventComponentRemoving(this, new ComponentEventArgs(cmp)); } }
private void OnComponentAdded(Component cmp) { // Notify Components ICmpInitializable cmpInit = cmp as ICmpInitializable; if (cmpInit != null) { cmpInit.OnInit(Component.InitContext.AddToGameObject); } foreach (Component c in this.compList) { if (!c.Active || c == cmp) { continue; } ICmpComponentListener cTemp = c as ICmpComponentListener; if (cTemp != null) { cTemp.OnComponentAdded(cmp); } } // Public event if (this.eventComponentAdded != null) { this.eventComponentAdded(this, new ComponentEventArgs(cmp)); } }