Jump to content

unityFer

Fosiles
  • Content Count

    12
  • Joined

  • Last visited

Community Reputation

0 Neutral

About unityFer

  • Rank
    Iniciado

Profile Information

  • Especialidad
    Artista
  1. Muy buenas, he modelado un terreno y quiero añadirle hierbas y vegetación en general pero no hallo la forma de hacerlo ¿Alguien sabría explicarme como hacerlo? Muchas gracias de antemano.
  2. Buenas, explico la cuestión, tengo un mecanismo que guarda los items que recoges y al llegar a un sitio la cantidad numérica se traspasa a "la base" El tema es que quiero hacer que por cada minuto que pase se resten X unidades de lo almacenado hasta el momento, una cuenta atrás vamos, pero no tengo ni la mas remota idea de cómo hacerlo. El código es un poco largo pero simple así que adjunto un archivo. Básicamente tengo dos variables int que controlan lo que tengo yo y lo que tengo acumulado en la base. -Dos triggers, uno para recoger un objeto y otro para saber si has llegado a la base -y una funcion para mostrar en pantalla la cantidad para cada tipo de objeto en mi "bolsa" o en la base. Agradezco de antemano toda la ayuda posible.. using UnityEngine; using UnityEngine.UI; using System.Collections; public class ContadorBasico : MonoBehaviour{ //BARRAS private float time; private Text guiTime; private Image guiBar; /// public Text countText; //Controla la funcion de texto de la cuenta public GameObject YouWin; //Variables de texto de recursos //:::::::::::::::::::::PLAYER_RESOURCES:::::::::::::::::::::// //Oxígeno public Text oxigenCounter; //Plasma public Text plasmaCounter; //Comida public Text foodCounter; //:::::::::::::::::::::BASE_RESOURCES:::::::::::::::::::::::// public Text baseComida; public Text basePlasma; public Text baseOxigeno; //:::::::::::::::::::::EARTH_PROGRESS:::::::::::::::::::::::// public Text progresoTierra; //:::::::::::::::::::::PUBLIC RESOURCES:::::::::::::::::::::// public Text BarraDePlasma; //**********************************************// public Text winText; //Controla la funcion de texto de win //VARIABLES DE CUENTA private int count; private int plasma; private int oxigeno; private int comida; //::::::::::::::::::::::MECANISMOS BASE:::::::::::::::::::::::::// //aqui iran las variables que controlan los recursos de la base private int base_Plasma; private int base_Comida; private int base_Oxigeno; //::::::::::::::::::::::MECANISMO TIERRA::::::::::::::::::::::::// public int terra; //Controla los recursos de la tierra //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// void Start() { YouWin.SetActive (false); //Panel de youWin desactivado por defecto //cuentas mochila count = ; //Inicia la cuenta a 0 plasma = ; comida = ; oxigeno = ; //cuentas base base_Plasma = 100; base_Comida=; base_Oxigeno=; terra = ; } void Update(){ ///////////// INICIALIZAMOS RECURSOS!!! \\\\\\\\\\\\\\ //en Bolsa SetCountText(); SetCountPlasma(); SetCountOxy(); SetCountFood(); //en base SetBaseCountFood(); SetBaseCountOxy(); SetBaseCountPlasma(); //En tierra SetTierraProgreso(); //cuentatras// float plasmaLeft = base_Plasma; plasmaLeft -= Time.deltaTime; } //TRIGGERS//**************************************** void OnTriggerEnter(Collider other){ //SI colisiona con un item if (other.gameObject.CompareTag("Pick Up")) { //y el item se llama X other.gameObject.SetActive(false); //El objeto desaparece count = count + 1; //Y se añade 1 en el contador SetCountText(); //LLamamos la funcion que muestra el contador } else if (other.gameObject.CompareTag("plasma_Item")){ //y el item se llama X other.gameObject.SetActive(false); //El objeto desaparece plasma = plasma + 1; //Y se añade 1 en el contador SetCountPlasma(); //LLamamos la funcion que muestra el contador } else if (other.gameObject.CompareTag("oxy_item")){ //y el item se llama X other.gameObject.SetActive(false); //El objeto desaparece oxigeno = oxigeno + 1; //Y se añade 1 en el contador //terra = terra + 5; SetCountOxy(); //LLamamos la funcion que muestra el contador } else if (other.gameObject.CompareTag("food_item")){ //y el item se llama X other.gameObject.SetActive(false); //El objeto desaparece comida = comida + 1; //Y se añade 1 en el contador SetCountFood(); //LLamamos la funcion que muestra el contador } } void OnTriggerStay(Collider other){ //Si estamos if (other.tag == "Base") { //En la base //:::::::::::::::::::::::::OXIGENORESET::::::::::::::::::::::::::// SetCountOxy(); //llamamos la funcion que controla el oxigeno SetBaseCountOxy(); //llamamos oxigeno de la base base_Oxigeno = base_Oxigeno + oxigeno; //pasamos el oxigeno a la base terra = terra + oxigeno ; oxigeno = ; //Y lo reseteamos a 0, el contador vuelve a 0 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// //:::::::::::::::::::::::PLASMARESET::::::::::::::::::::::::::::// SetCountPlasma(); base_Plasma = base_Plasma + plasma; //pasamos el plasma a la base terra = terra + plasma ; Debug.Log("HOLAMUNDO"); plasma = ; //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// //::::::::::::::::::::::::COMIDARESET:::::::::::::::::::::::::::// SetCountFood(); base_Comida = base_Comida + comida; //pasamos la comida a la base terra = terra + comida ; comida = ; //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// } } //COUNTERS******************************************** void SetCountText(){ //Cuenta de prueba countText.text = "Count: " + count.ToString(); // Muestrea el texto COUNT if (count >= 12){ //Si la cuenta llega a 12 winText.text = "You Win!"; //Nos enseña el texto de you win } } //CONTADOR DE PLASMA void SetCountPlasma() { plasmaCounter.text = "" + plasma.ToString(); // Muestra el texto COUNT } //CONTADOR DE OXIGENO void SetCountOxy() { oxigenCounter.text = "" + oxigeno.ToString(); // Muestra el texto COUNT } //CONTADOR DE COMIDA void SetCountFood() { foodCounter.text = "" + comida.ToString(); // Muestra el texto COUNT } //::::::::::::::::::::::CONTADORESBASE:::::::::::::::::::::::::::::// void SetBaseCountFood() //comida{ baseComida.text = "" + base_Comida.ToString(); // Muestra el texto COUNT } void SetBaseCountPlasma() //plasma{ basePlasma.text = "" + base_Plasma.ToString(); // Muestra el texto COUNT } void SetBaseCountOxy() //oxigeno{ baseOxigeno.text = "" + base_Oxigeno.ToString(); // Muestra el texto COUNT } //::::::::::::TIERRA:::::::::::// void SetTierraProgreso() //oxigeno{ progresoTierra.text = "" + terra.ToString(); // Muestra el texto COUNT if (terra > 10 ){ //Si llegamos a 20... YouWin.SetActive (true); //activa you win Time.timeScale = 0.0f; //para el tiempo Debug.Log ("WINWINWIN"); } } } Supongamos que por cada minuto quiero que se resten 2 de plasma en la base. Cómo me lo monto?
  3. Hola, tengo un script que lo que hace es basicamente permitir recoger una serie de gameObject con un tag y anotar la cantidad acmulada en total en un contador numérico. Lo que quiero ahora es por ejemplo, hacer que por cada 10 de un item recogido se genere otro distinto pero no tengo ni idea de cómo hacerlo. Mi script para recoger items y sumarlos es así, donde count es una variable private int que controla lo que recojo y tendria otra private int para el item que quiero generar.
  4. Las coordenadas donde se va a instanciar la explosión, con ésto instancio en el lugar donde se destruye el proyectil.
  5. a ver, cuando le doy al play funciona. Cuando compilo todo el juego para hacer el ejecutable no. Y es ahi cuando me sale el error. Disculpa mis modales, llevo menos de un año, soy nuevo en ésto.
  6. Cambiandolo y poniendolo al final sigue dando error cuando hago Build del juego. no tengo ningun script a instanciar, o sea, el script que tiene la explosion es para eliminarla aparte cuando pasen x segundos.
  7. el prefab de la explosion cuenta con un script aparte, si La cosa es la siguiente: Destruyo el proyectil, luego se instancia en el sitio una explosion, en unity funciona, y explota, el problema viene al compilar
  8. usé ésto y sigue igual, al compilar tira error al matar a uno. el prefab está asignado en el inspector, no se de que otra forma puedo hacer que al impactar el proyectil salga una explosión, es que no tiene sentido. GameObject ExplosionEnemigo = Instantiate(Resources.Load("ExplosionEnemigo", typeof (GameObject)), gameObject.transform.position, gameObject.transform.rotation) as GameObject; Tal que así
  9. Saludos, tengo un problema grave, me explico. Tengo enemigos que al morir explotan, en el editor de unity me va perfecto, cuando muere uno instancia la explosión, pero al compilar el juego me tira error cuando mato a alguno y me pone lo siguiente: ArgumentException: The thing you want to instantiate is null. Tengo la explosión en una carpeta que se llama resources y la llamo en el script de la siguiente manera en el inspector tengo asignado el prefab de la explosión
  10. Saludos, tengo un problema grave, me explico. Tengo enemigos que al morir explotan, en el editor de unity me va perfecto, cuando muere uno instancia la explosión, pero al compilar me tira error cuando mato a alguno y me pone lo siguiente: ArgumentException: The thing you want to instantiate is null. Tengo la explosión en una carpeta que se llama resources y la llamo en el script de la siguiente manera:
  11. le asigno un tag al objeto que quiero destruir y desde codigo destruyo el gameObject: if (other.tag == "Destroyer"){ Destroy(this.gameObject); //para destruir el proyectil Destroy(other.gameObject); //Para destruir el enemigo } La jerarquia del objeto es la siguiente ******** -Enemigo (Si le pongo tag y un collider no funciona y el proyectil traspasa el enemigo, sin colisionar siquiera) -MESH (Aqui si pongo el tag y el collider funciona) -Armature (Si pongo tambien el tag aqui, me cargo primero el armature, pero no el mesh, que deja de repetir la animacion y traspasa el suelo) ******** -Si pongo el armature dentro del mesh el npc empieza a girar y escalarse, cuando lo arreglo el proyectil traspasa el enemigo sin colisionar. Asi que de nada me sirve poner el armature dentro del mesh.
  12. Saludos, el asunto es el siguiente, tengo un enemigo , dentro de éste está el modelo del mismo y los huesos (armature), disparo al enemigo y éste muere y desaparece pero el armature, que no se ve, sigue andando hacia mi y me hace daño. He probado de añadirle el mismo tag a los huesos que provoca que se destruya el modelo, pero sucede que primero me cargo el armature y el mesh queda atravesando la tierra y moviendose de todas formas, asi que tengo que disparar de nuevo para hacerlo desaparecer. el caso es que no se como destruir los dos objetos de golpe, si le pongo el tag y un collider al empty gameobject que contiene el modelo y los huesos, el proyectil atraviesa el modelo y no pasa nada. Alguna sugerencia?
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...