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);
    }
Exemple #2
0
    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();
        }
    }