我有一个名为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");
}
}
}