private void OnCollisionEnter(Collision collision) // conbercion villager zombie
            {
                if (collision.transform.name == "Zombie")
                {
                    ZombieStruct zombieStruct = gameObject.AddComponent <MyZombie>().datosZombie;
                    zombieStruct = (ZombieStruct)gameObject.GetComponent <MyVillager>().datosAldeano;

                    switch (gameObject.GetComponent <MyZombie>().datosZombie.colorZombi)
                    {
                    case 0:
                        gameObject.GetComponent <Renderer>().material.color = Color.cyan;
                        break;

                    case 1:
                        gameObject.GetComponent <Renderer>().material.color = Color.green;
                        break;

                    case 2:
                        gameObject.GetComponent <Renderer>().material.color = Color.magenta;
                        break;
                    }
                    gameObject.name = "Zombie";
                    StopAllCoroutines();
                    Destroy(gameObject.GetComponent <MyVillager>());
                }
            }
Example #2
0
    /***********************************************************************************************************************Funcion "Update"***********************************************************************************************************************/
    /// <summary>
    /// Constantemente se va verificando la distancia entre el héroe y cada uno de los zombies
    /// para así, si la distancia en un número en específico mostrar un mensaje en la UI.
    /// Por otro lado también se verifica cada que se presiona clic, para así instanciar un objeto que
    /// sirve como proyectil para destruir zombies.
    /// </summary>
    void Update()
    {
        foreach (GameObject zo in ClassController.zombieList)
        {
            if (zo != null)
            {
                distancesH_Z = Vector3.Distance(gameObject.transform.position, zo.transform.position);
            }

            if (citizenText == false)
            {
                if (distancesH_Z <= 5)
                {
                    StopCoroutine("RemoveDialogue");
                    zombieStruct_H = zo.GetComponent <Zombie>().ZombieMessage();
                    heroStruct_H.dialogue.enabled = true;
                    heroStruct_H.dialogue.text    = "ZOMBIE: Waaaarrrr i want to eat " + zombieStruct_H.bodyPart;
                    StartCoroutine("RemoveDialogue");
                }
            }
        }

        if (Input.GetButtonDown("Fire1") && heroStruct_H.countProjectiles > 0)
        {
            clone = Instantiate(Resources.Load("Projectile", typeof(GameObject)) as GameObject, heroStruct_H.gun.transform.position, transform.localRotation);
            clone.GetComponent <Rigidbody>().velocity = heroStruct_H.gun.transform.TransformDirection(Vector3.forward * 70);
            heroStruct_H.countProjectiles--;
            Destroy(clone, 0.5f);
        }

        GameOver();
    }
Example #3
0
    CitizenStruct citizenStruct_H;                                                                                                              //Creo una variable de tipo "CitizenStruct" que es la estructura del ciudadano.

    /******************************************************************************************************************Funcion "OnCollisionEnter"******************************************************************************************************************/
    void OnCollisionEnter(Collision collision)                                                                                             //Utilizo la función "OnCollisionEnter" para detectar cuando hay una colisión.
    {
        if (collision.gameObject.GetComponent <Zombie>())                                                                                  //Verifico con el condicional si el objeto que tiene este script esta chocando con algún otro que tenga el componente de "Zombie".
        {
            zombieStruct_H = collision.gameObject.GetComponent <Zombie>().ZombieMessage();                                                 //En resumen, "ZombieStruct_H" es igual a la función "ZombieMessage()" ubicada en la clase "Zombie" y, esta función retorna la estructura local de dicha clase, por lo tanto, "ZombieStruct_H" será igual a "ZombieStruct_Z".
            print("Waaaarrrr i want to eat " + zombieStruct_H.bodyPart);                                                                   //Ahora imprimo lo que aparece entre comillas más "zombieStruct_H.bodyPart", es decir, "zombieStruct_H" se acabó de sobrescribir por "zombieStruct_Z" y luego accedimos a la variable "bodyPart" de la estructura.
        }
        if (collision.gameObject.GetComponent <Citizen>())                                                                                 //Verifico con el condicional si el objeto que tiene este script esta chocando con algún otro que tenga el componente de "Citizen".
        {
            citizenStruct_H = collision.gameObject.GetComponent <Citizen>().CitizenMessage();                                              //En resumen, "citizenStruct_H" es igual a la función "CitizenMessage()" ubicada en la clase "Citizen" y, esta función retorna la estructura local de dicha clase, por lo tanto, "CitizenStruct_H" será igual a "CitizenStruct_C".
            print("Hello, i am " + citizenStruct_H.names + " and i am " + citizenStruct_H.age + " years old");                             //Ahora imprimo lo que aparece entre comillas más "CitizenStruct_H.bodyPart", es decir, "CitizenStruct_H" se acabó de sobrescribir por "CitizenStruct_Z" y luego accedimos a la variable "randomName" de la estructura, y lo mismo con "citizenStruct.age"
        }
    }
Example #4
0
            private void OnCollisionEnter(Collision collision) // CONTACTO QUE CONVIERTE ALDEANO A ZOMBI
            {
                if (collision.transform.name == "Zombie")      // SI DETECTA COLISION COMO ZOMBI HACE EL CAST PARA VOLVERLO COMPLETAMENTE ZOMBIE
                {
                    ZombieStruct zombieStruct = gameObject.AddComponent <MyZombie>().datosZombie;
                    zombieStruct = (ZombieStruct)gameObject.GetComponent <MyVillager>().datosAldeano;


                    gameObject.name = "Zombie"; // LO RENOMBRA COMO ZOMBIE
                    StopAllCoroutines();        // DETIENE LAS CORRUTINAS
                    Destroy(gameObject.GetComponent <MyVillager>());
                }
            }
 public void PerseguirVictima(ZombieStruct zs) // inicia la persecusion si encuentra una victima cercana
 {
     estadoActual = 3;
     if (distanciaAldeano <= distanciaEntreObjetos)
     {
         direction           = Vector3.Normalize(villagerObject.transform.position - transform.position);
         transform.position += direction * zs.velocidadZombi * (15 / (float)zs.edadZombi) * Time.deltaTime;
     }
     else if (distanciaAJugador <= distanciaEntreObjetos)
     {
         direction           = Vector3.Normalize(heroObject.transform.position - transform.position);
         transform.position += direction * zs.velocidadZombi * (15 / (float)zs.edadZombi) * Time.deltaTime;
     }
 }
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.transform.name == "Aldeano")
        {
            contactoAldeano = true;
            datosAldeano    = collision.gameObject.GetComponent <MyVillager>().datosAldeano;
        }

        if (collision.transform.name == "Zombie")
        {
            contactoZombi = true;
            datosZombie   = collision.gameObject.GetComponent <MyZombie>().datosZombie; // Esto va en el colision de cada zombie o aldeano
        }
    }
Example #7
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.transform.name == "Aldeano")
     {
         contactoAldeano = true;
         datosAldeano    = collision.gameObject.GetComponent <MyVillager>().datosAldeano;
     }
     if (collision.transform.name == "Zombie")
     {
         contactoZombi = true;
         datosZombie   = collision.gameObject.GetComponent <MyZombie>().datosZombie; // Esto va en el colision de cada zombie o aldeano
         Debug.Log("Game Over");
         mensajito.SetActive(true);                                                  // aqui saca el game over cuando lo tocan
         Time.timeScale = 0;                                                         // timescale detener el juego cuando un zombie toque al heroe
     }
 }                                                                                   // funciones devuelven el mensaje por contacto del heroe
Example #8
0
    public void PerseguirVictima(ZombieStruct zs) // INICIA LA PERSECUSION SI ENCUENTRA UNA VICTIMA CERCANA
    {
        //if (villagerObject == null) return;

        estadoActual = 3;
        if (distanciaAldeano <= distanciaEntreObjetos)                                                         // PERSIGUE PRIMERO A UN ALDEANO
        {
            direction           = Vector3.Normalize(dAldeano);                                                 // BUSCA EL VECTOR DIRECCION QUE APUNTE AL OBJETO AL QUE SE DESEA LLEGAR
            transform.position += direction * zs.velocidadZombi * (15 / (float)zs.edadZombi) * Time.deltaTime; // TRANSFORMA LA POSICION PARA ACERCARSE A OTRO OBJETO
        }
        else if (distanciaAJugador <= distanciaEntreObjetos)                                                   // PERSIGUE AL HEROE SINO ENCUENTRA ALDEANOS CERCA
        {
            direction           = Vector3.Normalize(dPlayer);                                                  // BUSCA EL VECTOR DIRECCION QUE APUNTE AL OBJETO AL QUE SE DESEA LLEGAR
            transform.position += direction * zs.velocidadZombi * (15 / (float)zs.edadZombi) * Time.deltaTime; // TRANSFORMA LA POSICION PARA ACERCARSE A OTRO OBJETO
        }
    }
Example #9
0
    void Update()
    {
        foreach (GameObject zo in ClassController.zombieList)
        {
            distancesH_Z = Vector3.Distance(gameObject.transform.position, zo.transform.position);

            if (citizenText == false)
            {
                if (distancesH_Z <= 5)
                {
                    StopCoroutine("RemoveDialogue");
                    zombieStruct_H = zo.GetComponent <Zombie>().ZombieMessage();
                    heroStruct_H.dialogue.enabled = true;
                    heroStruct_H.dialogue.text    = "ZOMBIE: Waaaarrrr i want to eat " + zombieStruct_H.bodyPart;                                               //Ahora el texto de la variable "dialogue" de la estructura cambiará a lo que aparece entre comillas más "zombieStruct_H.bodyPart", es decir, "zombieStruct_H" se acabó de sobrescribir por "zombieStruct_Z" y luego accedimos a la variable "bodyPart" de la estructura.
                    StartCoroutine("RemoveDialogue");
                }
            }
        }
    }
Example #10
0
            IEnumerator ComportamientoZombie(ZombieStruct gameStruct)
            {
                while (true)
                {
                    gameStruct.estadoZombi = (ZombieStruct.estadosZombi)Random.Range(0, 3);
                    switch (gameStruct.estadoZombi)
                    {
                    case ZombieStruct.estadosZombi.Idle:     // Para que se quede quieto
                        seMueve = 0;
                        break;

                    case ZombieStruct.estadosZombi.Moving:     // Para que se mueva hacia el frente
                        seMueve = 1;
                        break;

                    case ZombieStruct.estadosZombi.Rotating:     // Para que rote
                        seMueve             = 2;
                        selectorDireccional = Random.Range(0, 2);
                        break;
                    }
                    yield return(new WaitForSeconds(3.0f)); // Espera 3 segundos y cambia de comportamiento
                }
            }
Example #11
0
    }                                                                                   // funciones devuelven el mensaje por contacto del heroe

    public string MensajeZombi(ZombieStruct datosZombie)
    {
        string mensajeZombi = "Waaaarrrr quiero comer " + datosZombie.gustoZombi;

        return(mensajeZombi);
    }