Exemplo n.º 1
0
    /*void OnEnable()
     * {
     *  players = GameObject.FindGameObjectsWithTag("Player").OrderBy(go => go.name).ToArray();
     *  randomTarget = Random.Range(0, players.Length);
     * }*/

    void Update()
    {
        offZomPool.noOfBoids = GameObject.FindGameObjectsWithTag("Zombie");

        distanceToPlayer = Vector3.Distance(transform.position, players[randomTarget].transform.position);
        if (distanceToPlayer < attackDistance && timer < 4)
        {
            if (currCondition != attackCondition)
            {
                currCondition = 2;
                zombieAnim.SetBool("isAttacking", true);
                zombieAnim.SetBool("isWalking", false);
            }
            if (easy || medium)
            {
                AudioManager.auidoInstance.PlaySFX(AudioManager.auidoInstance.effectSource, 10, 4, 0.8f, AudioManager.auidoInstance.effectClips);
            }
            if (hard)
            {
                AudioManager.auidoInstance.PlaySFX(AudioManager.auidoInstance.effectSource, 10, 3, 0.8f, AudioManager.auidoInstance.effectClips);
            }
        }
        else if (distanceToPlayer > attackDistance)
        {
            if (currCondition != chaseCondition)
            {
                currCondition = 1;
                zombieAnim.SetBool("isAttacking", false);
                zombieAnim.SetBool("isWalking", true);
            }
        }

        if (!players[randomTarget].activeInHierarchy)
        {
            randomTarget  = Random.Range(0, players.Length);
            currCondition = 3;
        }

        //Zombie Attacking
        if (attacking == true)
        {
            timeToAttack = timeToAttack + Time.deltaTime;
            if (timeToAttack >= delayedDamage)
            {
                offlinePly.DamageTaken(zomDamage, randomTarget);
                timeToAttack = 0;
            }
        }
    }