示例#1
0
            /// <summary>
            /// Designar el escape si se acerca zombie
            /// </summary>
            /// <returns></returns>
            IEnumerator buscaZombies()
            {
                zombie    = GameObject.FindGameObjectsWithTag("Zombie");
                Esqueleto = GameObject.FindGameObjectsWithTag("Esqueleto");
                foreach (GameObject item in zombie)
                {
                    zom.Zombie componenteZombie = item.GetComponent <zom.Zombie>();
                    if (componenteZombie != null)
                    {
                        distancia = Mathf.Sqrt(Mathf.Pow((item.transform.position.x - transform.position.x), 2) + Mathf.Pow((item.transform.position.y - transform.position.y), 2) + Mathf.Pow((item.transform.position.z - transform.position.z), 2));
                        if (!runningState)
                        {
                            if (distancia < 5f)
                            {
                                aldeanoEstado = Estado.Running;
                                Target        = item;
                                runningState  = true;
                            }
                        }
                    }
                }

                foreach (GameObject item in Esqueleto)
                {
                    zom2.Zombie2 componenteZombie = item.GetComponent <zom2.Zombie2>();
                    if (componenteZombie != null)
                    {
                        distancia = Mathf.Sqrt(Mathf.Pow((item.transform.position.x - transform.position.x), 2) + Mathf.Pow((item.transform.position.y - transform.position.y), 2) + Mathf.Pow((item.transform.position.z - transform.position.z), 2));
                        if (!runningState)
                        {
                            if (distancia < 5f)
                            {
                                aldeanoEstado = Estado.Running;
                                Target        = item;
                                runningState  = true;
                            }
                        }
                    }
                }

                if (runningState)
                {
                    if (distancia > 5f)
                    {
                        runningState = false;
                    }
                }

                yield return(new WaitForSeconds(0.1f));

                StartCoroutine(buscaZombies());
            }
示例#2
0
    /// <summary>
    /// calculamos la distancia de los objetos con respecto al heroe para hacer la retroalimentacon por medio del canvas
    /// </summary>
    /// <returns></returns>
    IEnumerator BuscaEntidades()
    {
        zombie   = GameObject.FindGameObjectsWithTag("Zombie");
        zombie2  = GameObject.FindGameObjectsWithTag("Zombie2");
        aldeanos = GameObject.FindGameObjectsWithTag("Villager");

        // retroalimentacion para el aldeano
        foreach (GameObject item in aldeanos)
        {
            yield return(new WaitForEndOfFrame());

            villa.Villager componenteAldeano = item.GetComponent <villa.Villager>();
            if (componenteAldeano != null)
            {
                distancia = Mathf.Sqrt(Mathf.Pow((item.transform.position.x - transform.position.x), 2) + Mathf.Pow((item.transform.position.y - transform.position.y), 2) + Mathf.Pow((item.transform.position.z - transform.position.z), 2));
                if (distancia < 5f)
                {
                    time              = 0;
                    datosAldeano      = item.GetComponent <villa.Villager>().datosAldeano;
                    textoAldeano.text = "Hola, soy " + datosAldeano.nombre + " y tengo " + datosAldeano.edad.ToString() + " años";
                }
                if (time > 3)
                {
                    textoAldeano.text = " ";
                }
            }
        }

        // retroalimentacion para el zombie
        foreach (GameObject itemZ in zombie)
        {
            yield return(new WaitForEndOfFrame());

            zom.Zombie componenteZombie = itemZ.GetComponent <zom.Zombie>();
            if (componenteZombie != null)
            {
                distanciaZ = Mathf.Sqrt(Mathf.Pow((itemZ.transform.position.x - transform.position.x), 2) + Mathf.Pow((itemZ.transform.position.y - transform.position.y), 2) + Mathf.Pow((itemZ.transform.position.z - transform.position.z), 2));
                if (distanciaZ < 5f)
                {
                    time             = 0;
                    datosZombie      = itemZ.GetComponent <zom.Zombie>().datosZombie;
                    textoZombie.text = "Waaaarrrr quiero comer " + datosZombie.gusto;
                }
                if (time > 3)
                {
                    textoZombie.text = " ";
                }
            }
        }

        foreach (GameObject itemZ2 in zombie2)
        {
            yield return(new WaitForEndOfFrame());

            zom2.Zombie2 componenteZombie = itemZ2.GetComponent <zom2.Zombie2>();
            if (componenteZombie != null)
            {
                distanciaZ = Mathf.Sqrt(Mathf.Pow((itemZ2.transform.position.x - transform.position.x), 2) + Mathf.Pow((itemZ2.transform.position.y - transform.position.y), 2) + Mathf.Pow((itemZ2.transform.position.z - transform.position.z), 2));
                if (distanciaZ < 5f)
                {
                    time              = 0;
                    datosZombie       = itemZ2.GetComponent <zom2.Zombie2>().datosZombie;
                    textoZombie2.text = "Waaaarrrr quiero comer " + datosZombie.gusto;
                }
                if (time > 3)
                {
                    textoZombie2.text = " ";
                }
            }
        }
        yield return(new WaitForSeconds(0.1f));

        StartCoroutine(BuscaEntidades());
    }