public override void OnStatetEnter(GameObject gameObject) { AT_Enemy enemy = gameObject.GetComponent <AT_Enemy>(); enemy.MyAnimator.SetBool("Walking", true); enemy.GetAgent().isStopped = false; //StartCoroutine(Chase(enemy)); }
private IEnumerator Chase(AT_Enemy enemy) { while (true) { target = enemy.GetTarget().transform.position; enemy.MoveTowardsTargetPosition(); //enemy.GetAgent().speed = enemy.GetMovementSpeed(); //enemy.GetAgent().SetDestination(enemy.GetTarget().transform.position); //yield return new WaitForSeconds(seconds); yield return(null); } }
public override void Execute(GameObject gameObject) { AT_Enemy enemy = gameObject.GetComponent <AT_Enemy>(); if (enemy.IsTargetWithinAttackDistance()) { StopCoroutine(Chase(enemy)); enemy.GetAgent().velocity = Vector3.zero; enemy.GetAgent().isStopped = true; enemy.GetStateMachine().SetState(AttackState.Instance); } else { enemy.MoveTowardsTargetPosition(); } }
public override void Execute(GameObject gameObject = null) { AT_Enemy enemy = gameObject.GetComponent <AT_Enemy>(); if (!enemy.IsTargetWithinAttackDistance() && !enemy.isAttacking) { enemy.GetStateMachine().SetState(ChaseState.Instance); } else { if (!enemy.isAttacking) { enemy.MyAnimator.SetTrigger("Attack"); int attack = Random.Range(1, 4); enemy.MyAnimator.SetTrigger("Attack" + attack); enemy.StartCoroutine("WaitForNextAttack"); } } }
public override void OnStateExit(GameObject gameObject) { AT_Enemy enemy = gameObject.GetComponent <AT_Enemy>(); enemy.MyAnimator.SetBool("Walking", false); }
public override void OnStateExit(GameObject gameObject = null) { AT_Enemy enemy = gameObject.GetComponent <AT_Enemy>(); enemy.StopCoroutine("WaitForNextAttack"); }