示例#1
0
        public Enemy3AttackState(Enemy3Controller enemy) : base(enemy)
        {
            animatorBoolParameterName = "IsAttacking";

            _transform       = enemy.transform;
            _parameters      = enemy.Parameters;
            _staffController = enemy.StaffController;
            _spriteRenderer  = enemy.SpriteRenderer;

            _canAlreadyStopAttackingDelayer = new MethodDelayer(enemy, CanAlreadyStopAttacking);
        }
        public Enemy3WalkingState(Enemy3Controller enemy) : base(enemy)
        {
            animatorBoolParameterName = "IsWalking";

            _transform       = enemy.transform;
            _spriteRenderer  = enemy.SpriteRenderer;
            _rigidbody       = enemy.Rigidbody;
            _parameters      = enemy.Parameters;
            _surroundings    = enemy.SurroundingsDetector;
            _staffController = enemy.StaffController;
            _direction       = _parameters.initialDirection;

            // Pequeño delay para evitar que el enemigo cambie de dirección muy rápido mientras el raycast sigue
            // colisionando con la pared/sigue sin colisionar el suelo por unos pocos frames.
            _canChangeDirectionAgainDelayer = new MethodDelayer(enemy, CanChangeDirectionAgain);
        }
 private void Awake()
 {
     _enemyParameters = GetComponentInParent <Enemy3Parameters>();
     _animator        = GetComponent <Animator>();
 }