Stormrage-LosDK

Programación Orientada a Objetos (Tower defense - kingdom rush)

Moderator: julianmartinez16

User avatar
konicky
Posts: 26
Joined: Tue Jan 22, 2019 2:04 pm

Sprint #4 19/02/2019

Post by konicky » Tue Feb 19, 2019 10:57 pm

¿Que hemos hecho?
-Diseño nivel(tiled).
-finalizamos programacion menus.
-Programar interfaz del juego(barras de vida, mapas).
-Programar historia y instrucciones.
-Programar seleccion personajes.
¿Que vamos a hacer?
-Finalizacion del diseño de nivel y personajes.
¿Que problemas hemos tenido?
-Nula comunicación entre los miembros.
-Desorden con los cronogramas planteados.
-problemas con los programas para el diseño de niveles y personajes.
-Retraso en las fechas.
Evidencias:
Image
Image
Image
Image
Image
Image
Image
Image
Last edited by konicky on Tue Apr 02, 2019 7:41 am, edited 1 time in total.
Nicolás Alberto Barragán Mena
Pdoo2

User avatar
konicky
Posts: 26
Joined: Tue Jan 22, 2019 2:04 pm

Sprint #4 22/02/2019

Post by konicky » Fri Feb 22, 2019 9:21 pm

¿Que hemos hecho?
-Programación menús.
-Programación interfaz.
-Programación historia.
-Programación selección personajes.
¿Que vamos a hacer?
-Finalizar programación y diseño de mapas.
¿Que problemas hemos tenido?
-Nula comunicación entre los miembros.
-Desorden con los cronogramas planteados.
-problemas con los programas para el diseño de niveles y personajes.
-Retraso en las fechas.
-Todo el trabajo lo estoy haciendo yo.

Evidencias:

Image
Image
Image
Image
Image
Image
Image
Image


Codigo:


Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Unidad : MonoBehaviour
{
    public GameObject ruta; // Aqui se pone el game object de ruta, con los puntos que debe seguir la unidad.
    private int punto; // Esto me indica en que punto de la ruta se encuentra el jugador.
    private float tiempo;

    // Se llama cada frame
    void Update()
    {
        if (tiempo > 0.5) // Control de tiempo ejecuta los comandos cada 0.6 unidades de tiempo.
        {
            if (punto < ruta.transform.childCount) //childcount me va a indicar cuantos puntos(hijos) tiene el gameobject ruta(padre). Es dinamica(cuando se modifique algo en Unity el codigo aun sirve).
            {
                Debug.Log(ruta.transform.GetChild(punto).transform.position.x+" "+ruta.transform.GetChild(punto).transform.position.y); //this indica la unidad a la que se le asigno el script.
                this.transform.position = new Vector3(ruta.transform.GetChild(punto).transform.position.x, ruta.transform.GetChild(punto).transform.position.y, this.transform.position.z); //El objeto  con este codigo se mueve entre los puntos.
                punto++; //se asigna como objetivo el siguiente punto de la ruta.
            }
            tiempo = 0; //se reinicia el tiempo(cronometro).

        }
        else
        {
            tiempo += Time.deltaTime; //se le suma el tiempo en segundos desde el ultimo fotograma.
        }
    }
}
Last edited by konicky on Tue Apr 02, 2019 8:18 am, edited 3 times in total.
Nicolás Alberto Barragán Mena
Pdoo2

User avatar
000359662
Posts: 5
Joined: Tue Jan 22, 2019 2:24 pm

SPRINT #5 26/02/2019

Post by 000359662 » Tue Feb 26, 2019 8:31 pm

¿Que hemos hecho?
-Descargar e Instalar Unity.
-Descargar assets .
-Empezando con los tiles y escenario.
¿Que vamos a hacer?
-Finalizar programación y diseño de mapas.
-Seguir avanzando con los escenarios
-Seguir trabajando en los personajes.
¿Que problemas hemos tenido?
-Desorden con los cronogramas planteados.
-problemas con los programas para el diseño de niveles y personajes.
-Retraso en las fechas.

Evidencias:

Image

Image
Nelson Oliver Hancco Quispe PDOO #2

User avatar
konicky
Posts: 26
Joined: Tue Jan 22, 2019 2:04 pm

Sprint 6

Post by konicky » Tue Mar 05, 2019 10:52 pm

Actividades: Bocetos de gráficos, conceptualización de mecánicas y planificación de niveles.
¿Que hemos hecho?
-Programacion nivel y torres.
¿Que vamos a hacer?
-programacion nivel y torres.
¿Que dificultades hemos tenido?
-No hemos podido reunirnos, por lo que nos repartimos las actividades.
-No he podido terminar algunos modelos de personajes.
-Yo estoy haciendo todo.
Evidencias:

Imagenes:
Image
Image
Image

Video:




Codigo:

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Unidad : MonoBehaviour
{
    public GameObject ruta; // Aqui se pone el game object de ruta, con los puntos que debe seguir la unidad.
    private int punto; // Esto me indica en que punto de la ruta se encuentra el jugador.
    private float tiempo;
    private Vector3 siguiente_punto; //posicion siguiente punto donde debe moverse la unidad.
    public float velocidad; //velocidad de movimiento.
    private float distancia_minima=0.5f;//distancia minima al punto objetivo(desde donde se pone como objetivo el siguiente).

    //Se llama cuando se ejecuta el codigo.
    void Start()
    {
        siguiente_punto = ruta.transform.GetChild(0).position; //toma la posicion de la primera instancia(primer punto) hija de el objeto ruta.
    }


    // Se llama cada frame.
    void Update()
    {
        Vector3 direccion = siguiente_punto - this.transform.position; //Se asigna la direccion del movimiento de la unidad.
        this.transform.position += direccion * velocidad * Time.deltaTime;//cada frame se movera en la direccion x con una velocidad que se le asignara.

        //cuando se va al siguiente punto.
        if (direccion.magnitude <= distancia_minima)
        {
            if (punto + 1 < ruta.transform.childCount)
            {
                punto++;
                siguiente_punto = ruta.transform.GetChild(punto).position;
                Debug.Log("Xsig: " + siguiente_punto.x + "Ysig: " + siguiente_punto.y);
            }
            else
            {
                Destroy(gameObject);
            }
        }
    }
    

}

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Torre : MonoBehaviour
{

    private GameObject enemigo; //guarda la referencia de la unidad enemiga.
    public float distancia_deteccion=2;
    public Transform punto_disparo;
    public float frecuencia_disparo=0.5f;
    private float siguiente_disparo;
    private bool esta_activa;


    public GameObject bullet;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        Enemigo = BuscarEnemigo();
        if (Enemigo != null && Time.time>siguiente_disparo)
        {
            siguiente_disparo = Time.time + frecuencia_disparo;
            Disparar();
            Debug.DrawLine(this.transform.position, enemigo.transform.position, Color.green);
        }
    }

    void Disparar()
    {
            GameObject objeto = (GameObject)Instantiate(bullet, punto_disparo.position, Quaternion.identity);
            Bala bala = objeto.GetComponent<Bala>();
            bala.ActivarBala(this);
    }

    GameObject BuscarEnemigo()
    {
        ArrayList enemigos = PoolingUnidad.unidades;
        GameObject temp;
        foreach(Object item in enemigos)
        {
            temp = (GameObject)item; //casting explicito de Object a Gameobject.
            if (Vector3.Distance(temp.transform.position, this.transform.position) < distancia_deteccion && temp.activeInHierarchy)
            {
                return temp; //retorno la referencia de ese objeto.
            }
        }
        return null; //esto me indica que no hay enemigos cercanos.
    }

    public bool Esta_activa { get => esta_activa; set => esta_activa = value; }
    public GameObject Enemigo { get => enemigo; set => enemigo = value; }
}
Last edited by konicky on Tue Apr 02, 2019 8:23 am, edited 2 times in total.
Nicolás Alberto Barragán Mena
Pdoo2

User avatar
000359662
Posts: 5
Joined: Tue Jan 22, 2019 2:24 pm

Sprint #7 12/03/2019

Post by 000359662 » Tue Mar 12, 2019 11:07 pm

Actividades; creación y planificación de escenarios en unity.
¿Que hemos hecho?
-creación de escenarios(unity)
-Programación nivel y torres.
¿Que vamos a hacer?
-programación nivel y torres.
¿Que dificultades hemos tenido?
-No hubo oportunidad de reunirnos.
-No he podido terminar algunos modelos.
-Terminar la programación tanto de niveles como de las torres.
Evidencias:

ESCENARIO TIERRA
Image

ESCENARIO TIERRA Y AGUA
Image
Nelson Oliver Hancco Quispe PDOO #2

User avatar
konicky
Posts: 26
Joined: Tue Jan 22, 2019 2:04 pm

Sprint #8

Post by konicky » Sun Mar 31, 2019 9:02 pm

Fecha:31/03/2018
¿Que hemos hecho?
-Finalizacion animacion unidad enemiga.
-Ajustes programacion preentrega.
-Ajustes menus y HUD.
¿Que vamos a hacer?
-Pruebas y mejoras(balance).
-Mejora errores spawn enemigos.
-Poner mas razas jugables.
¿Que dificultades hemos tenido?
-Nuestro grupo nunca se ha reunido.
-Yo estoy haciendo todo.
-Tuve dificultades con la implementacion de los spawn de enemigos y menu (pooling).

Evidencias:

Imagen referencia:
Image
Image
Image






Codigo:

Code: Select all

void Update()
    {
        if (Input.GetKeyDown(KeyCode.X))
        {
            Debug.Log("Torre");
            seleccion = 0;
        }
        if (Input.GetKeyDown(KeyCode.Z))
        {
            Debug.Log("Casa");
            seleccion = 1;
        }
    }

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PoolingUnidad : MonoBehaviour
{

    public static ArrayList unidades = new ArrayList(); //un Array list es similar a un vector(pero no se especifican cuantos componentes se va a tener). Crece dinamicamente. Es estatic para que se cree una sola vez y se acceda directamente desde otros codigos.
    public Transform[] puntos_salida;
    public float tiempo_oleada=5f;
    public GameObject unidad, unidad2;


    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(Pooling(unidad, puntos_salida[0]));
        StartCoroutine(Pooling(unidad2, puntos_salida[1]));
    }

    IEnumerator Pooling( GameObject unidad, Transform posicion_salida)
    {
        unidades.Add(unidad);
        GameObject temp;
        Vector3 incremento = new Vector3(5, 0);
        Vector3 posicion_actual = posicion_salida.position;
        for (int i = 0; i < 5; i++) //crear 3 unidades
        {
            yield return new WaitForSeconds(tiempo_oleada);
            temp = (GameObject)Instantiate(unidad, posicion_actual + incremento, Quaternion.identity); //creo el objeto temporal con la referencia de la unidad.
            posicion_actual = temp.transform.position; //le asigno la posicion al objeto.
            unidades.Add(temp); //agrego la unidad a la lista.
        }
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bala : MonoBehaviour
{

    private GameObject objetivo;
    private float velocidad = 5;
    private float tiempo_vida = 0.5f;
    private float tiempo_actual;

    // Start is called before the first frame update
    void Start()
    {
        tiempo_actual = 0;
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 direccion;
        if (objetivo!=null)
        {
            direccion = objetivo.transform.position - this.transform.position;
            this.transform.position += velocidad * direccion * Time.deltaTime;
        }

        if (tiempo_actual > tiempo_vida)
        {
            Destroy(gameObject);
        }
        tiempo_actual += Time.deltaTime;
    }

    public void ActivarBala(Torre torre)
    {
        objetivo = torre.Enemigo;
    }
}

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PonerElemento : MonoBehaviour
{

    public GameObject[] elementos; //torre que quiero asignar.
    public int seleccion;

    void OnMouseDown()
    {
        GameObject temp; //guarda el objeto que voy a instanciar.
        Vector3 posicion = this.transform.position; //guarda la posicion a la que di click.
        posicion.y = posicion.y + 0.6f; //suba un poquito la torre en y.
        temp = Instantiate(elementos[seleccion]); //se crea el objeto torre.
        temp.transform.position = posicion; //se le asigna la posicion a la torre creada(lugar donde se dio click).
        temp.layer = 5; //aparezca en pantalla.
        Destroy(this.gameObject); //destruye la matica en donde se da click.
    }


}

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UIManager : MonoBehaviour
{

    public Slider vida_ui;
    public int vida_maxima=10;
    private int vida_actual;
  
    private Unidad unidad; //guarda clase Unidad(bajar vidas jugador).

    // Start is called before the first frame update
    void Start()
    {
        vida_actual = vida_maxima;
        vida_ui.maxValue = vida_actual;
        vida_ui.value = vida_ui.maxValue;
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void ActualizarVida()
    {
        vida_actual--;
        vida_ui.value = vida_actual;
    }
}

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PonerElemento : MonoBehaviour
{

    public GameObject[] elementos; //torre que quiero asignar.
    public int seleccion;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.X))
        {
            Debug.Log("Torre");
            seleccion = 0;
        }
        if (Input.GetKeyDown(KeyCode.Z))
        {
            Debug.Log("Casa");
            seleccion = 1;
        }
    }

    void OnMouseDown()
    {
        GameObject temp; //guarda el objeto que voy a instanciar.
        Vector3 posicion = this.transform.position; //guarda la posicion a la que di click.
        posicion.y = posicion.y + 0.6f; //suba un poquito la torre en y.
        temp = Instantiate(elementos[seleccion]); //se crea el objeto torre.
        temp.transform.position = posicion; //se le asigna la posicion a la torre creada(lugar donde se dio click).
        temp.layer = 5; //aparezca en pantalla.
        Destroy(this.gameObject); //destruye la matica en donde se da click.
    }


}
Nicolás Alberto Barragán Mena
Pdoo2

User avatar
konicky
Posts: 26
Joined: Tue Jan 22, 2019 2:04 pm

PREENTREGA JUEGO TOWER DEFENSE

Post by konicky » Tue Apr 02, 2019 9:22 am

Nicolás Alberto Barragán Mena
Pdoo2

User avatar
konicky
Posts: 26
Joined: Tue Jan 22, 2019 2:04 pm

Sprint #9 05/04/2019

Post by konicky » Fri Apr 05, 2019 7:45 am

¿Que hemos hecho?
  • Correccion Pooling Balas.
  • Correccion Pooling Unidades.
  • Correccion Menu Inicial y de seleccion de personaje.
¿Que vamos a hacer?
  • Pantalla Game Over.
  • Pantalla de victoria.
  • Finalizacion Prefabs unidades enemigas.
  • Implementacion Heroes enemigos.
¿Que dificultades hemos tenido?
  • He tenido problemas con el pooling de las balas y unidades. no me esta dejando reactivar las balas una vez disparadas, ni los enemigos una vez desactivados. He intentado usando Listas, Queue y diccionarios y no me ha funcionado.
Evidencias:

Referencias:
https://unity3d.com/es/learn/tutorials/ ... ct-pooling
https://docs.microsoft.com/es-es/dotnet ... ions.queue
https://docs.microsoft.com/en-us/dotnet ... ctionary-2

Video con el error que me aparece:


Codigo Pooling Balas(error):

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PoolBalas : MonoBehaviour
{
    public static Dictionary<int, Queue<GameObject>> pool = new Dictionary<int, Queue<GameObject>>(); //se crea un diccionario que guarde la lista tipo Queue.

    public void PreInstancia(GameObject obj, int cantidad)
    {
        pool.Add(obj.GetInstanceID(), new Queue<GameObject>());
        //Instanciar balas
        for(int i = 0; i < cantidad; i++)
        {
            GameObject temp = (GameObject)Instantiate(obj);
            pool[obj.GetInstanceID()].Enqueue(temp); //agrega el objeto temp al final de la cola.
            temp.SetActive(false);
        }
    }
    public void ReutilizarBalas(GameObject objeto, Transform posicion)
    {
        if (pool.ContainsKey(objeto.GetInstanceID())) //si existe la llave del diccionario se ejecuta.
        {
            GameObject temp=pool[objeto.GetInstanceID()].Dequeue(); //accede al primer elemento de la cola.
            temp.transform.position = posicion.position; //le indico la posicion en donde se debe instanciar.
            temp.SetActive(true);
            Debug.Log("Reutilizar");
            pool[objeto.GetInstanceID()].Enqueue(temp); //vuelve a agregar a temp al inicio de la lista.
        }
    }
}
Codigo Torre:

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Torre : MonoBehaviour
{

    private GameObject enemigo; //guarda la referencia de la unidad enemiga.
    public float distancia_deteccion=2;
    public Transform punto_disparo;
    public float frecuencia_disparo=1;
    private float siguiente_disparo;
    private bool esta_activa;
    public GameObject bullet; //guarda el prefab de la bala.
    public static Dictionary<int, Queue<GameObject>> pool = new Dictionary<int, Queue<GameObject>>(); //se crea un diccionario que guarde la lista tipo Queue.

    // Start is called before the first frame update
    void Start()
    {
        PreInstancia(bullet,10);
    }

    // Update is called once per frame
    void Update()
    {
        Enemigo = BuscarEnemigo();
        if (Enemigo != null && Time.time>siguiente_disparo)
        {
            siguiente_disparo = Time.time + frecuencia_disparo;
            Disparar();
            Debug.DrawLine(this.transform.position, enemigo.transform.position, Color.green);
        }
    }

    void Disparar()
    {
        ReutilizarBalas(bullet,punto_disparo);
    }

    public void PreInstancia(GameObject obj, int cantidad)
    {
        pool.Add(obj.GetInstanceID(), new Queue<GameObject>());
        //Instanciar balas
        for (int i = 0; i < cantidad; i++)
        {
            GameObject temp = (GameObject)Instantiate(obj);
            pool[obj.GetInstanceID()].Enqueue(temp); //agrega el objeto temp al final de la cola.
            temp.SetActive(false);
        }
    }

    public void ReutilizarBalas(GameObject objeto, Transform posicion)
    {
        if (pool.ContainsKey(objeto.GetInstanceID())) //si existe la llave del diccionario se ejecuta.
        {
            GameObject temp = pool[objeto.GetInstanceID()].Dequeue(); //accede al primer elemento de la cola.
            temp.transform.position = posicion.position;//le indico la posicion en donde se debe instanciar.
            Bala bala = temp.GetComponent<Bala>(); //creo la instancia de Bala.
            bala.ActivarBala(this); 
            temp.SetActive(true);
            //temp.SendMessage("Reinstanciar", SendMessageOptions.DontRequireReceiver);
            pool[objeto.GetInstanceID()].Enqueue(temp); //vuelve a agregar a temp al inicio de la lista.
        }
    }

    GameObject BuscarEnemigo()
    {
        ArrayList enemigos = PoolingUnidad.unidades;
        GameObject temp;
        foreach(Object item in enemigos)
        {
            temp = (GameObject)item; //casting explicito de Object a Gameobject.
            if (Vector3.Distance(temp.transform.position, this.transform.position) < distancia_deteccion && temp.activeInHierarchy)
            {
                return temp; //retorno la referencia de ese objeto.
            }
        }
        return null; //esto me indica que no hay enemigos cercanos.
    }

    public bool Esta_activa { get => esta_activa; set => esta_activa = value; }
    public GameObject Enemigo { get => enemigo; set => enemigo = value; }
}
Nicolás Alberto Barragán Mena
Pdoo2

User avatar
xacarana
Site Admin
Posts: 1213
Joined: Fri Jan 15, 2016 6:13 pm

Re: Stormrage-LosDK

Post by xacarana » Fri Apr 05, 2019 10:23 am

Próxima clase, revisamos nuevamente, debe verse el trabajo en equipo y muy importante delegar roles de programación, tales como diagramas de clases, comentarios del código y escritura de ciertas rutinas, usando xtreme programming.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
konicky
Posts: 26
Joined: Tue Jan 22, 2019 2:04 pm

Sprint #10 09/04/2019

Post by konicky » Tue Apr 09, 2019 8:17 am

Asignacion tareas semana 10.

Nicolás Barragán:
  • Menu seleccion de personajes.
  • Pooling balas.
  • Prefab unidades enemigas.
Nelson Hancco:
  • Menu inicial.
  • Implementacion historia(programar).
¿Que hemos hecho?
  • Menu seleccion de personajes.
  • Pooling Balas.
  • Menu inicial?(Nelson)
¿Que vamos a hacer?
  • Finalizacion pooling Balas.
  • Prefab unidades enemigas.
¿Que dificultades hemos tenido?
  • Se daño el computador portatil, por lo que se ha retrasado la implementacion de los prefabs y el pooling, también se tiene evidencias que no se ha podido subir (ya que estan en el computador dañado).En el transcurso de la semana se subiran esas evidencias.
  • Se ha tenido problemas con el Pooling de las balas, ya que no esta dejando reactivar las balas una vez disparadas. Se ha intentado usando Listas, Queue y diccionarios y no ha funcionado.
  • No hemos podido reunirnos fisicamente aunque nos hemos comunicado por mensajes y discord.
Evidencias(parte Nicolas):
  • Imagenes:
    Image
    Image
    Image
    Image
    Image
    Image
    Image
  • Codigos:

    Code: Select all

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    using UnityEngine.SceneManagement;
    
    public class Seleccion : MonoBehaviour {
    
        public Image forajido, orco, terraneo, monstruo; //guarda la imagen de las razas.
        public Animator Afor, Aorc, Ater, Amon; //animaciones de el menu.
        private Color color_defecto; //color del recuadro.
        private int raza_id; //identificar raza seleccionada.
    
        // Use this for initialization
        void Start()
        {
    
            raza_id = 1; //inicializo en la raza Renegado.
            color_defecto = forajido.color;
    
        }
    
        // Update is called once per frame
        void Update()
        {
    
            if (Input.GetKeyDown(KeyCode.Z))  //si se hunde Z. 
            {
                raza_id = 1;
            }
            if (Input.GetKeyDown(KeyCode.X))  //si se hunde X. 
            {
                raza_id = 2;
            }
            if (Input.GetKeyDown(KeyCode.C)) //si se hunde C.
            {
                raza_id = 3;
            }
            if (Input.GetKeyDown(KeyCode.V)) //si se hunde V.
            {
                raza_id = 4;
            }
    
            if (raza_id == 1)
            {
                Debug.Log(raza_id);
                forajido.color = Color.yellow;
                Afor.SetBool("Ataque", true); //anima el ataque del forajido.
    
                orco.color = color_defecto;
                Aorc.SetBool("Ataque", false);
                terraneo.color = color_defecto;
                Ater.SetBool("Ataque", false);
                monstruo.color = color_defecto;
                Amon.SetBool("Ataque", false);
            }
            if (raza_id == 2)
            {
                Debug.Log(raza_id);
                orco.color = Color.red;
                Aorc.SetBool("Ataque", true); //anima el ataque del orco.
    
                forajido.color = color_defecto;
                Afor.SetBool("Ataque", false);
                terraneo.color = color_defecto;
                Ater.SetBool("Ataque", false);
                monstruo.color = color_defecto;
                Amon.SetBool("Ataque", false);
            }
            if (raza_id == 3)
            {
                Debug.Log(raza_id);
                terraneo.color = Color.blue;
                Ater.SetBool("Ataque", true); //anima el ataque del terraneo.
    
                orco.color = color_defecto;
                Aorc.SetBool("Ataque", false);
                forajido.color = color_defecto;
                Afor.SetBool("Ataque", false);
                monstruo.color = color_defecto;
                Amon.SetBool("Ataque", false);
    
            }
            if (raza_id == 4)
            {
                Debug.Log(raza_id);
                monstruo.color = Color.magenta;
                Amon.SetBool("Ataque", true); //anima el ataque del mnstruo.
    
                orco.color = color_defecto;
                Aorc.SetBool("Ataque", false);
                terraneo.color = color_defecto;
                Ater.SetBool("Ataque", false);
                forajido.color = color_defecto;
                Afor.SetBool("Ataque", false);
    
            }
            if (Input.GetKeyDown(KeyCode.Return)) //si se da enter.
            {
                Debug.Log("Se escogio la raza: " + raza_id);
                SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
            }
        }
    }
    
  • Video:
Nicolás Alberto Barragán Mena
Pdoo2

Post Reply