Exemplo n.º 1
0
        public IEnumerator RunSyncAction(IEnumerator action)
        {
            ActorProxy.EnableSeeker(false);
            yield return(action);

            ActorProxy.UpdateSyncPositionToCurrentPosition();
            ActorProxy.EnableSeeker(true);
            SyncAction           = null;
            _syncActionCoroutine = null;
        }
Exemplo n.º 2
0
        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)));
        }
Exemplo n.º 3
0
        IEnumerator RunLocalActionInternal(IEnumerator action, bool aiStop)
        {
            if (aiStop)
            {
                StopAI();
            }

            yield return(action);

            _runningActionCoroutine = null;
            RunningAction           = null;

            if (aiStop)
            {
                StartAI();
            }
        }
Exemplo n.º 4
0
        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)));
        }