protected override void Awake() { this.AddTag(SPConstants.TAG_ROOT); Pool.AddReference(this); base.Awake(); _isAwake = true; //Messaging.Broadcast<IEntityAwakeHandler>(this.gameObject, (h) => h.OnEntityAwake(this), true, true); var token = Messaging.CreateBroadcastToken <IEntityAwakeHandler>(this.gameObject, true, true); if (token != null && token.Count > 0) { com.spacepuppy.Hooks.EarlyStartHook.Invoke(this.gameObject, () => { token.Invoke((h) => h.OnEntityAwake(this)); }); } }