public void SetState(GuyStates state) { if (state == currentState) { return; } if (state != GuyStates.Follow) { followCrono = 0; } if (state != GuyStates.Attack && punchCoroutine != null) { StopCoroutine(punchCoroutine); } anim.ResetTrigger("Attack"); //Start dos estados switch (state) { case GuyStates.Attack: punchCoroutine = StartCoroutine(Attack()); break; case GuyStates.Wait: StartCoroutine(Wait(3)); break; case GuyStates.WalkAroundPlayer: StartCoroutine(WalkAroundPlayer()); break; case GuyStates.Hit: StartCoroutine(Hit(2)); break; case GuyStates.DropItem: anim.SetTrigger("ReflectedDown"); gameObject.tag = "DieWithItem"; health = 0; Melee_Controller controller = GetComponent <Melee_Controller>(); if (controller != null) { controller.enabled = false; } break; case GuyStates.Die: anim.SetTrigger("ReflectedDown"); Die(); break; } currentState = state; }
private void IsCloseToPlayer(GuyStates direction) { if ((Mathf.Abs(transform.position.x - player.transform.position.x) > distanceFollow || Mathf.Abs(transform.position.x - player.transform.position.x) < 0.1f) || Mathf.Abs(transform.position.y - player.transform.position.y) > 0.1f) { SetState(direction); } else { SetState(GuyStates.Attack); } }
public void SetState(GuyStates state) { if (state == currentState) { return; } if (currentState == GuyStates.Follow && state == GuyStates.Kick) { return; } if (state != GuyStates.Kick) { anim.ResetTrigger("Kick"); } //Start dos estados switch (state) { case GuyStates.Attack: StartCoroutine(Shoot()); break; case GuyStates.Reloud: StartCoroutine(Reloud()); break; case GuyStates.Kick: StartCoroutine(Kick()); break; case GuyStates.Die: anim.SetTrigger("Reflected"); anim.SetBool("Shooting", false); this.enabled = false; Die(); break; } currentState = state; }