我是C#编码的新手,并且此代码存在一些问题。大多数代码都可以正常工作,但是当我测试以查看对象数组中的随机对象是否可以给我一定的值时,会出现以下错误:
NullReferenceException:对象引用未设置为对象的实例
UniGen.Start()(位于Assets / UniGen.cs:23)
正如我所说的,我是C#的新手,这可能是一个新手错误,或者我只是不了解对象数组或它们的用法。我将此代码用作Unity中的C#脚本。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UniGen : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
int Universe = Random.Range(600, 801);
int planetHab, planetSize, numOfPlanets;
Planets[] UniversalArray = new Planets[800];
for (int i=0;i<Universe;i++)
{
planetHab = Random.Range(1, 26);
planetSize = Random.Range(1, 11);
UniversalArray[i] = new Planets(planetHab,planetSize,i);
}
for (int i=0;i<UniversalArray.Length;i++)
{
Debug.Log("Habitability: "+UniversalArray[i].Hab + "| Size: " + UniversalArray[i].Size + "| ID Number: " + UniversalArray[i].ID);
}
// This part doesn't get printed out
Debug.Log(UniversalArray[46].Size);
}
// Update is called once per frame
void Update()
{
}
}
代码本身可以正常工作,并且需要打印的所有内容都可以打印出来,但是Debug.Log(UniversalArray [46] .Size)行;没有打印。我希望它将为我提供数组第46个对象中的Size值。