Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: brok en Noviembre 21, 2015, 08:46:51 PM

Título: ¿que es este error?
Publicado por: brok en Noviembre 21, 2015, 08:46:51 PM
Que es este error y como puedo solucionarlo.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/UnityEngineTransformBindings.gen.cs:20)
Player_ai+<idle>c__Iterator0.MoveNext () (at Assets/script/AI/Player_ai.cs:63) 
El error me sale eneste script el la linea " playerT.Translate(-Vector3.forward * sinkSpeed);". using UnityEngine;
using System.Collections;
public class ColisionPlayerAI : MonoBehaviour
{
    public float sinkSpeed = 0.5f;
    
    AudioSource GolpeSonido;
    Transform playerT;
    Ray GolpeRay;
    RaycastHit GolpeHit;    void Start()
    {
        playerT = GameObject.FindGameObjectWithTag("Enemigo").transform;
        GolpeSonido = GetComponentInParent<AudioSource>();
       
    }
    
        
    
    void OnTriggerEnter(Collider colision)
    {        GolpeRay.origin = transform.position;
        GolpeRay.direction = transform.forward;        if (Physics.Raycast(GolpeRay, out GolpeHit) && colision.gameObject.CompareTag("Player"))
            
        {
            
            vidaPlayer vidaplayer= GolpeHit.collider.GetComponent<vidaPlayer>();
            
            if (vidaplayer != null )
                
                vidaplayer.QuitarVidaPlayer(1, GolpeHit.point);
                GolpeSonido.Play();
                playerT.Translate(-Vector3.forward * sinkSpeed);
                Player.damaged = true;           
            
        }
    }  }
Título: ¿que es este error?
Publicado por: brok en Noviembre 21, 2015, 09:18:55 PM
e probado poniendo la variable PlayerT en != null en una condicion pero me sale el como si no lo ubiera solucionado.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.
Título: ¿que es este error?
Publicado por: brok en Noviembre 21, 2015, 11:03:01 PM
Se que hay que poner el script en NombreScript != null pero como lo hago estoy muy persdido ayudadme por fabor.
Título: ¿que es este error?
Publicado por: leocub58 en Noviembre 21, 2015, 11:26:22 PM
la traducción vendría siendo que destruistes el transform e intentas acceder a él. 
Título: ¿que es este error?
Publicado por: brok en Noviembre 21, 2015, 11:45:43 PM
Eso lo sabia gracias
Me sale el error mientras estoy peleando con los enemigos que todos son los mismos prefab instanciados.
Título: ¿que es este error?
Publicado por: brok en Noviembre 22, 2015, 12:31:24 AM
Lo he solucinado de una forma chapuza  creando enty vacio y le añadido el script ColisionPlayerAI y hacediendo por el script del player con estoColisionPlayerAI colisionAI;colisionAI = GameObject.FindGameObjectWithTag("Enemigo").GetComponentInChildren<ColisionPlayerAI>();y poniendo esto debajoif (colisionAI != null) { }Chapuza pero funciona y ahora me gustaria que alguien me exxplicase un metoso mas pro, Gracias,
Título: ¿que es este error?
Publicado por: Feider en Noviembre 22, 2015, 02:38:20 PM
¿Has probado a mirar qué se ejecuta siempre? Lo malo del sistema de hilos de Unity es que puede que algo se haga antes que otro algo... -O eso pienso, quizá me confunda-. En cualquier caso me doy cuenta que dices tener muchos enemigos iguales... ¿Pero cuál estás cogiendo? buscar por tag pienso que o te traerá una colección de enemigos o el primero... Luego parece que usas esa clase globalmente... Si le da más enemigos ¿no te daría problemas? m'''.¿por qué no pruebas a trabajar todo en un trigger o collision dentro del propio jugador sin variables globales que guarden enemigos? -Es una sugerencia, tal vez no te sirva...-(Tal vez no estoy entendiendo bien cómo haces tu scritp)Ánimo de todas formas.
Título: ¿que es este error?
Publicado por: brok en Noviembre 22, 2015, 06:57:27 PM
El problema es es que el enemigo es un prefab y no puedo haceder a sus componentes, no se como prodia hacerlo ¿hay alguna forma?
Título: ¿que es este error?
Publicado por: Braltor en Noviembre 22, 2015, 07:41:41 PM
Los prefabs son GameObjects, puedes acceder a sus componentes con GetComponent.
Título: ¿que es este error?
Publicado por: brok en Noviembre 22, 2015, 08:06:58 PM
Ya lo hize y funciono gracias.