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>(); }