예제 #1
0
파일: IdleState.cs 프로젝트: Cesea/Sweeper
        public void CheckStatus()
        {
            Vector3 playerPosition = _player.transform.position;
            Vector3 enemyPosition  = _owner.transform.position;

            if (Vector3.Distance(playerPosition, enemyPosition) < _seekDistance)
            {
                _thinker.ChangeState(new ChaseState());
                EventManager.Instance.TriggerEvent(new Events.EnemyChaseEvent(_owner.EnemyID));
            }
        }
예제 #2
0
파일: FleeState.cs 프로젝트: Cesea/Sweeper
        public void CheckStatus()
        {
            Vector3 playerPosition = _player.transform.position;
            Vector3 enemyPosition  = _owner.transform.position;

            //Distance between Player is too far change to idle state
            if (Vector3.Distance(playerPosition, enemyPosition) > _seekDistance)
            {
                _thinker.ChangeState(new IdleState(), true);
                EventManager.Instance.TriggerEvent(new Events.EnemyFleeEvent(_owner.EnemyID));
            }
        }