public void Awake(long id) { Object obj; if (!objects.TryGetValue(id, out obj)) { return; } IObjectEvent objectEvent; if (!objectEvents.TryGetValue(obj.GetType(), out objectEvent)) { return; } IAwake iAwake = objectEvent as IAwake; if (iAwake == null) { return; } objectEvent.SetValue(obj); iAwake.Awake(); }
public void Awake <P1, P2, P3>(long id, P1 p1, P2 p2, P3 p3) { Object obj; if (!objects.TryGetValue(id, out obj)) { return; } IObjectEvent objectEvent; if (!objectEvents.TryGetValue(obj.GetType(), out objectEvent)) { return; } IAwake <P1, P2, P3> iAwake = objectEvent as IAwake <P1, P2, P3>; if (iAwake == null) { return; } objectEvent.SetValue(obj); iAwake.Awake(p1, p2, p3); }
public K AddComponent <K, P1, P2>(P1 p1, P2 p2) where K : Component, new() { K component = (K)Activator.CreateInstance(typeof(K)); component.Owner = this; if (this.componentDict.ContainsKey(component.GetType())) { throw new Exception($"AddComponent, component already exist, id: {this.Id}, component: {typeof (K).Name}"); } if (this.components == null) { this.components = new HashSet <Component>(); } this.components.Add(component); this.componentDict.Add(component.GetType(), component); IAwake <P1, P2> awake = component as IAwake <P1, P2>; awake?.Awake(p1, p2); return(component); }