public IEnumerator RunSyncAction(IEnumerator action) { ActorProxy.EnableSeeker(false); yield return(action); ActorProxy.UpdateSyncPositionToCurrentPosition(); ActorProxy.EnableSeeker(true); SyncAction = null; _syncActionCoroutine = null; }
public void SyncActionWithTarget(string hash, ActorProxy targetActorProxy) { if (_syncActionCoroutine != null) { SyncAction.OnActionCancel(ActorProxy); StopCoroutine(_syncActionCoroutine); } var action = ActionLookup.GetActionWithTarget(hash); SyncAction = action; _syncActionCoroutine = StartCoroutine(RunSyncAction(action.Action(ActorProxy, targetActorProxy))); }
IEnumerator RunLocalActionInternal(IEnumerator action, bool aiStop) { if (aiStop) { StopAI(); } yield return(action); _runningActionCoroutine = null; RunningAction = null; if (aiStop) { StartAI(); } }
public void SyncActionWithoutTarget(string hash) { //푸시를 만들면 이 부분에 수행되어야 한다. //스턴 중에도 푸시 액션을 허용해야 함. if (ActorProxy.isCantAI) { return; } if (_syncActionCoroutine != null) { SyncAction.OnActionCancel(ActorProxy); StopCoroutine(_syncActionCoroutine); } var action = ActionLookup.GetActionWithoutTarget(hash); SyncAction = action; _syncActionCoroutine = StartCoroutine(RunSyncAction(action.Action(ActorProxy))); }