private void Update() { healthBar.UpdateBar(life, maxlife); if (life <= 0) { SceneManager.LoadScene("Main"); Destroy(gameObject); } switch (_bossStates) { case StatesBoss.idle: attaking = false; if (timer <= 0) { timer = timerdelay; _bossStates = StatesBoss.Chase; } else { timer -= Time.deltaTime; } break; case StatesBoss.Chase: attaking = false; animator.SetBool("isWalking", true); if (Physics2D.OverlapCircle(transform.position, 1, whatIsWall)) { speed = -speed; flip(); } transform.Translate(2f * Time.fixedDeltaTime * speed * Vector2.left); movementController targetToAggro; var col = Physics2D.OverlapCircle((Vector2)transform.position + offset, size); if (col.gameObject.GetComponent <movementController>() != null) { _target = col.gameObject.GetComponent <movementController>().GetComponent <Transform>(); _bossStates = StatesBoss.Attack; } break; case StatesBoss.Attack: animator.SetBool("isWalking", false); if (Random.Range(0, 1) < 0.5) { animator.SetTrigger("Attack"); } else { animator.SetTrigger("Attack2"); } attaking = true; print("Attack"); break; void flip() { transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z); } } }
public void BackToIddle() { _bossStates = StatesBoss.idle; animator.SetBool("isWalking", false); }