NullReferenceException:对象引用未设置为unity 3D中试图生成函数的对象的实例
本文关键字:函数 对象 实例 对象引用 设置 3D unity NullReferenceException | 更新日期: 2023-09-27 18:04:46
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(flipPlayer))]
public class enemyInstantiate : MonoBehaviour
{
public GameObject[] enemies;
public Transform enemyPos;
public GameObject enemyClone;
void Start()
{
enemyPos = GameObject.Find("enemySpawn").transform;
enemyClone = GameObject.FindGameObjectWithTag("Player");
enemySpawn();
flip();
}
public void enemySpawn()
{
int enemyIndex = Random.Range(0, enemies.Length);
Instantiate(enemies[enemyIndex], transform.position, transform.rotation);
}
void flip()
{
enemyClone.GetComponent<flipPlayer>().enabled = true;
}
}
NullReferenceException:对象引用未设置为对象的实例enemyInstantiate.flip(((位于Assets/Scripts/enemyInstantate.cs:32(enemyInstantiate.Start(((位于Assets/Scripts/enemyInstantinate.cs:18(
我对Unity 3D很陌生仍然有问题,你能帮我解决问题吗?为什么我会得到一个nullReferenceException。
错误出现在行(enemyClone.GetComponent((.enabled=true;(中。
可能在这一行
enemyClone = GameObject.FindGameObjectWithTag("Player");
正在将null
返回到var enemyClone
,和/或从行返回GetComponent<flipPlayer>()
enemyClone.GetComponent<flipPlayer>()
也返回CCD_ 4。
当您试图访问作为null引用的对象的成员时,会发生此错误。
因此,检查哪个引用为空的一种方法是通过MonoDevelop进行调试。
如果没有完整的错误,我只能说:
- 随机。范围是介于最小值和最大值之间的数字,包含在内!因此,例如,如果你的长度是4,并且你的射程从0-4开始,并且你试图接近敌人[4],它就会崩溃!你需要你的线是随机的。范围(0,enemies.length-1(
- 你的敌人阵列中有物品吗
- 你在现场有敌人吗?也许先将该行分离成一个声明,然后在尝试访问它的转换之前确保该项不是null
希望这对你有帮助!如果没有,请张贴发生空引用的行