c# - 预制空 Unity C#
问题描述
尽管我已经在 Unity 中分配了它,但预制件仍为 null。我已经在很多地方搜索了我仍然没有找到错误的确切位置。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ButtonManager : MonoBehaviour
{
public GameObject myPrefab;
public Transform Panel;
public void distribution(List<InventoryItem> list){
for (int i=0; i<list.Count; i++){
Instantiate(myPrefab, new Vector3(0, 0, 0), Quaternion.identity);
}
}
}
这可能是我分配的方式button_manager_script
吗?
[更新] ButtonScriptOne
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ButtonScriptOne : MonoBehaviour {
public ButtonManager button_manager_script;
void Start () {
button_manager_script = new ButtonManager();
}
public void test_function(){
GlobalState.lazyLoad = true;
var list_items = new List<InventoryItem>();
list_items = DataStore.FindAllItems();
Debug.Log("First: "+ list_items[0]);
button_manager_script.distribution(list_items);
}
}
解决方案
这可能是我分配 button_manager_script 的方式吗?
是的
1:button_manager_script = new ButtonManager();
你不能这样做。ButtonManager
是一种 MonoBehaviour,Unity 应该向您抱怨调用new
而不是AddComponent
(or GetComponent
)。我不知道为什么没有,或者您是否忽略了该错误并将其从控制台中清除。
2:因为无论如何您都设法做到了,所以您的非附加组件有一个空myPrefab
字段,因为您从未将其设置为内部的任何内容ButtonScriptOne
。
推荐阅读
- python - 钢琴python中的键盘绑定
- python - 为什么我得到 generator has no len error on this code?
- c# - 有没有更快的方法将图像分配给许多按钮?
- c - 是否可以在没有锁的多线程程序中实现 2 行代码始终按顺序出现?
- apache-spark - Spark DataFrame 中的领域特定语言 API 是什么?
- flutter - 在类的方法中访问状态的哪种方式是正确的?
- javascript - 是否可以使用 highcharts 将计算放在 plotbands 内?
- reactjs - 如何在 React mui-Datatable 中完成 customRender
- python - 如何从图像中提取虚线文本?
- android - Android svg文件点击每个路径