Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

No sé qué he hecho mal

Iniciado por El preguntón, Diciembre 06, 2016, 11:47:54 AM

Tema anterior - Siguiente tema


Estaba haciendo un juego en el cual se destruía un objeto al colisionar con un tag. Así es como me quedó:
 



function OnTriggerEnter (collider : Collision){
if(collider.tag == "tag")
{
   Destroy(gameObject);
}
}


 
Pero no entiendo porque no funciona. Yo no sé mucho de programación, soy un iniciado, así que si alguien me pudiese ayudar se lo agradecería de antemano.

Diciembre 06, 2016, 12:04:13 PM #1 Ultima modificación: Diciembre 06, 2016, 12:05:19 PM por kingtrase
jajajajajajajaja
 
Estas itentando destruir el gameObject que destrulle cosas!
 

function OnTriggerEnter (collider : Collision){
if(collider.tag == "tag")
{
   Destroy(gameObject); //Aqui haces referencia a "gameObject" que se refiere al gameObject de ese script, es como hacer una llamada a                       //this.gameObject.
}
}

 
Este seria el codigo bueno:
 

function OnTriggerEnter (collider : Collision){
if(collider.tag == "tag")
{
   Destroy(collider.gameObject);
}
}

 
 

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Bueno si lo que queres es que el objeto que tiene el tag sobreviva y el que lo colisiona se destruya esta bien (si es alreves es como dice kingtrase). Lo que seguro tenes mal:
 
- Uno de los dos tiene que ser un rigidbody (kinematico o no)
 
- Obvio el que tiene el scrpt debe ser un trigger

Diciembre 08, 2016, 02:01:17 PM #3 Ultima modificación: Diciembre 08, 2016, 02:05:25 PM por El preguntón


Gracias por lo que me habéis dicho kingtrase y lightbug. Pero sigo sin entender porque no me funciona. Estaba haciendo con objetos primitivos a modo de prueba antes de empezar con modelos bien hechos lo que muestro abajo en el gif. Quería que cuando disparara a un objeto este se destruyera al colisionar con un tag; es decir, que le cubo se destruya. Pero no sé porque no se destruye. Empiezo a pensar que el problema no se trata del script, sino que de otra cosa. Pero no sé el que. El tag se lo he puesto a la esfera verde del video y en el cubo el script que había preguntado.
 
 
 


Por curiosidad, he hecho una prueba y si me ha funcionado.
 

    void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Player")
            Destroy(other.gameObject);
    }

 
Por supuesto, tener en cuenta que OnTriggerEnter no funciona si el colisionador no tiene activado (Is trigger)

El Topic se soluciona si subis estas dos cosas:
 
- Lista de componentes (con sus caracteristicas) de cada objeto
 
- scripts (que ya los subistes)
 
Una imagen de la escena no dice nada, mas vale subi una imagen de los inspectores de cada objeto
 
 

Etiquetas: