private void Init(GameObject gameObject) { actorBehaviour = AddActorBehaviour(gameObject); actorBehaviour.BindActor(this); RegisterActorBehaviourEvents(); RegisterActor(); }
protected virtual void DestroyGameObject(ActorMonoBehaviour actorBehaviour) { #if UNITY_EDITOR Object.DestroyImmediate(actorBehaviour.GameObject); #else Object.Destroy(actorBehaviour.GameObject); #endif }
public void Eject() { if (actorBehaviour != null) { UnRegisterActorBehaviourEvents(); actorBehaviour.UnBindActor(); actorBehaviour = null; } }
private void InternalOnDestroy() { OnDestroy(); StopAllCoroutines(); UnRegisterActorBehaviourEvents(); UnRegisterActor(); actorBehaviour.UnBindActor(); actorBehaviour = null; }
public bool Possess(ActorMonoBehaviour target) { if (target.Actor != null) { return(false); } Eject(); actorBehaviour = target; actorBehaviour.BindActor(this); RegisterActorBehaviourEvents(); return(true); }
protected override void DestroyGameObject(ActorMonoBehaviour actorBehaviour) { Pool.Destroy(actorBehaviour); }
public Actor(ActorMonoBehaviour actorBehaviour) { Possess(actorBehaviour); RegisterActor(); }
protected virtual void OnActorUnBind(ActorMonoBehaviour behaviour, Actor actor) { }