IEnumerator LeftCircle() { if (!tutorial.GetBool("Invisible")) { tutorial.SetBool("Invisible", true); } yield return(new WaitForSeconds(0.5f)); carveNavmesh.SetActive(false); transform.position = area.RandomPosition(); player.GetComponent <PlayerController>().SwitchSafeState(false); }
void Update() { if (!spawned) { transform.Translate(Vector3.up * Time.deltaTime * -spawnMoveSpeed); if (transform.position.y <= 0) { transform.position = new Vector3(transform.position.x, 0, transform.position.z); spawned = true; agent.enabled = true; anim.SetInteger("State", 1); randomTarget = area.RandomPosition(); } return; } if (angry && player != null) { agent.CalculatePath(player.position, path); if (path.status != NavMeshPathStatus.PathComplete) { rend.material.color = normalColor; if (anim.GetInteger("State") != 1) { ContinueWalking(); } RandomWalk(); return; } rend.material.color = angryColor; agent.destination = player.position; if (anim.GetInteger("State") != 2) { anim.SetInteger("State", 2); agent.speed = runspeed; agent.stoppingDistance = jumpAttackDistance; } if (Vector3.Distance(transform.position, player.position) < agent.stoppingDistance + 0.1f) { agent.isStopped = true; transform.LookAt(player.position); anim.SetInteger("State", 3); spawned = false; StartCoroutine(Attack()); } } else { RandomWalk(); } }