Noticias

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

Script falla solo en una escena.

Iniciado por liliput1994, Septiembre 22, 2015, 04:24:21 AM

Tema anterior - Siguiente tema
Septiembre 22, 2015, 04:24:21 AM Ultima modificación: Junio 02, 2016, 10:02:34 PM por pioj
Hola amigos,
 
Tengo un script que me hace desaparecer un objeto de una escena. 
 



   
      function OnTriggerStay  () {
      if(Input.GetKeyDown(KeyCode.E)){
      Destroy(this.gameObject);}
      }
   

[/quote]
 
Antes lo he utilizado con normalidad y funcionaba. Un rato después al probarlo me sale este error: 
 



   
      MissingReferenceException: The object of type 'Transform' has been destro*** but you are still trying to access it.
      Your script should either check if it is null or you should not destroy the object.
      UnityEngine.Transform.get_position () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineTransform.gen.cs:28)
      AISimple.Update () (at Assets/AISimple.js:10)
   

[/quote]
 
Solo me pasa en una escena, en todas las demás el script funciona a la perfección y sin errores. 
 
Me he dado cuenta que cuando se elimina el objeto también se elimina mi FPSControler, pero repito, esto solo sucende en esta escena.
 
Alguna idea? A que se debe?
 
 

Septiembre 22, 2015, 11:02:28 AM #1 Ultima modificación: Septiembre 22, 2015, 11:08:13 AM por Quel
Veo que de inglés ... mal. ¿No ?. El propio error te esta diciendo muy claramente lo que ocurre.The object of type 'Transform' has been destro*** but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
El objeto de tipo 'Transform' ha sido destruido pero tu aun intentas acceder a él.
Tu script debería comprobar si el objeto es nulo o no destruir el objeto.
Incluso te dice en que linea exacta hay el error. La funcion Update, a la linea 10 de tu script Assets/AISImple.jsPD: Si quieres llegar a algo en la programación, aprende ingles. Aunque sea un inglés "nivel ***o", unas nociones básicas son necesarias.

[quote author=liliput1994" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="25645" data-ipsquote-contentcommentid="112503 date=1442888661]Hola amigos,Tengo un script que me hace desaparecer un objeto de una escena. function OnTriggerStay  () {
if(Input.GetKeyDown(KeyCode.E)){
Destroy(this.gameObject);}
}Antes lo he utilizado con normalidad y funcionaba. Un rato después al probarlo me sale este error: MissingReferenceException: The object of type 'Transform' has been destro*** but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Transform.get_position () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineTransform.gen.cs:28)
AISimple.Update () (at Assets/AISimple.js:10)Solo me pasa en una escena, en todas las demás el script funciona a la perfección y sin errores. Me he dado cuenta que cuando se elimina el objeto también se elimina mi FPSControler, pero repito, esto solo sucende en esta escena.Alguna idea? A que se debe? [/quote]Hablo inglés nivel "***o" e incluso un poco más. Aun así gracias por traducirlo...
Borre lo que borre o modifique lo que modifique del script "AISimple" el otro script (Él que he publicado en un comentario anterior y no es el mismo de "AISimple") no funciona. Como mucho deja de darme el error. En cambio en cualquier otra escena funciona.   

No voy a preguntaros porque sabéis tan bien el inglés ***o xD Yo creo que el problema es el siguiente. Con tu primer script destruyes el objeto que lo tiene, pero luego estás intentando usar ese mismo objeto en AISimple y por eso te tira el error. Si no es así no estaría mal ver el código de AISimple para ver otras posibles razones

Gracias Zeus1200,Era exactamente eso!  Un saludo!

Etiquetas: