如果在Unity C中使用来自其他脚本的bool的语句#

时间:2015-06-20 14:37:53

标签: unity3d unityscript

我有一个名为Enemy的游戏对象使用脚本EnemyScript。然后我有其他使用脚本StatusBar的游戏对象。我想基于EnemyScript中的bool方法在StatusBar中做一些事情。

我在StatusBar中的if语句的行上出错:

  

对象引用未设置为对象的实例

据我所知,这意味着游戏对象如果找不到,但我无法找到我在代码中做错的事情。

EnemyScript.cs

using UnityEngine;
using System.Collections;

public class EnemyScript : MonoBehaviour 
{
    public static EnemyScript enemy;

    Player player;
    NavMeshAgent navAgent;

    void Start () 
    {
        player = Player.player;
        navAgent = GetComponent<NavMeshAgent>();
    }

    void Update () 
    {
    }

    public bool InRange()
    {
        if(Vector3.Distance(player.transform.position, transform.position) < 15)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

StatusBar.cs

using UnityEngine;
using System.Collections;

public class StatusBar : MonoBehaviour 
{
    EnemyScript enemy;
    Player player;

    void Start () 
    {
        EnemyScript enemy = GameObject.Find("Enemy").GetComponent<EnemyScript>();
    }

    void Update () 
    {
        if(enemy.InRange())
        {
            Debug.Log("hello");
        }
    }
}

0 个答案:

没有答案