Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - unityFer

#1
General (Antiguo) / Pintar vegetacion en malla importada
Septiembre 23, 2016, 08:09:49 PM
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
General (Antiguo) / problema al instanciar explosion
Junio 02, 2016, 10:39:39 PM
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
Cita de: iRobb date=1464304710Tienes que destruir el gameobject no el script u otro componente.
   
   
      Como haces el destroy?
   


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?