我正在开发一个游戏中的地图编辑器,我正在创建一个玩家可以选择放置在地图上的地图菜单。我将它们分成了瓷砖/敌人系列,我试图通过多次实例化按钮预制件并更改每个按钮的精灵和其他属性来为这些菜单创建按钮。下面是添加按钮的代码:
void CreateButtons()
{
for (int i=0;i<prefabNames.Length;i++)
{
Button button = Instantiate<Button>(prefabButtonPrefab);
GameObject prefab = Resources.Load<GameObject>("Prefabs/" + prefabNames[i]);
button.image.sprite = prefab.GetComponent<SpriteRenderer>().sprite;
button.GetComponent<EditorPrefabUIController>().prefabName = prefabNames[i];
buttons[i] = button;
}
}
然而,当它运行时,我得到一个 NullReferenceException: Object reference not set to an instance of an object at line 51. buttonPrefab 已经设置了一个预制件,它是一个按钮,所以我不确定这个错误在哪里来自。
我尝试将预制件切换为游戏对象,并从中获取按钮组件,但出现了同样的错误。我错过了什么吗?