I don't know if this was the best method, but I set these two scripts up so that when the player died, you could press a button and respawn him at a certain spot. It worked before, so i'm not sure if its because of the upgrade but, now even when i put something like "if target == null" i'll still get this error. What am I missing?
using UnityEngine;
using System.Collections;
public class GameCamera : MonoBehaviour
{
public ExplodingSpider spiderExplode;
public Spider spider;
public Spider spider2;
public TurretTemperture temperture;
public TurretTemperture temperture2;
public TurretTemperture temperture3;
public Turret turret;
public Turret turret2;
public Turret turret3;
private Vector3 cameraTarget;
private Transform target; // our gameObject
private GameManager manager;
private Vector3 startPoint = new Vector3(0,0,-19);
public GameGUI gui;
void Start ()
{
target = GameObject.FindGameObjectWithTag("Player").transform;
manager = GetComponent();
}
public void SetTarget(Transform t)
{
target = t;
cameraTarget = new Vector3(target.position.x,transform.position.y,target.position.z);
transform.position = Vector3.Lerp(transform.position, cameraTarget, Time.deltaTime * 8);
}
void Update ()
{
if(target)
{
cameraTarget = new Vector3(target.position.x,transform.position.y,target.position.z);
transform.position = Vector3.Lerp(transform.position, cameraTarget, Time.deltaTime * 8);
}
else
{
cameraTarget = Vector3.zero;
}
if(target == null)
{
if(Input.GetButtonDown("Respawn"))
{
manager.SpawnPlayer(startPoint);
gui.ResetHealth();
spider.ResetTarget();
spider2.ResetTarget();
turret.ResetTarget();
turret2.ResetTarget ();
turret3.ResetTarget ();
temperture.ResetTarget();
temperture2.ResetTarget();
temperture3.ResetTarget();
}
}
}
}& the other script that instantiates the player
using UnityEngine;
using System.Collections;
public class GameManager : MonoBehaviour
{
public GameObject player;
private GameObject currentPlayer;
private GameCamera cam;
void Start ()
{
cam = GetComponent ();
}
public void SpawnPlayer (Vector3 startPoint)
{
currentPlayer = Instantiate (player, startPoint, Quaternion.identity)as GameObject;
cam.SetTarget (currentPlayer.transform);
}
}& the error i've been getting
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
↧