在gameObject被销毁后丢失引用的麻烦

时间:2014-11-26 02:54:48

标签: c# unity3d destroy

在我的游戏中,npc假设攻击并摧毁一个房屋,该房屋被指定为脚本上的目标,但是当房屋被摧毁时,一个错误表明有一个缺失的引用,我预计会发生这种情况。 ..

但我该如何解决这个问题呢?有没有办法在gameObject被销毁后禁用目标变量?

这段代码在npc脚本

void Start () {

    force = 1000;
    enemyHealth = 100;
    enemyAttack = 20;
    enemyDefense = 2;
    bigFont= new GUIStyle();
    bigFont.fontSize = 20;

    target = GameObject.FindGameObjectWithTag("Player").transform;
    targetHouse = GameObject.FindGameObjectWithTag("house").transform;



    animator = GetComponent<Animator>();
}

这是在家庭剧本

void Update () {
    if(houseHp<= 0){
        Destroy(GameObject.FindWithTag("house"));
    }
}

1 个答案:

答案 0 :(得分:0)

您可以查看null并避免此问题。

GameObject temp = GameObject.FindGameObjectWithTag("house");

if(temp != null)
   targetHouse = temp.transform;

因此,当house被销毁时FindGameObjectWithTag()将返回null