问题描述
我将我的Button []声明为公开,因此我可以从检查器中引用它
,但是它没有出现在我的检查器中。请帮忙!!!
我尝试重新启动C#并统一导入所有内容...。
公共火箭火箭;
public Button[] levelButtons;
void Start()
{
for(int i=1 ; i<levelButtons.Length ; i++)
{
// if(i + 1 > rocket.level)
levelButtons[i].SetEnabled(false);
}
}
解决方法
按钮实际上是GameObject包含组件按钮。在使用它之前,您应该为要创建的数组初始化大小。例如,我编辑了代码:
//Your array
public GameObject[] levelButtons;
//Object to attach Button
public GameObject panelShow;
//Size for Array
public int sizeArrayButton = 5;
void Awake()
{
//Init size for Array
levelButtons = new GameObject[sizeArrayButton];
for (int i = 0; i < levelButtons.Length; i++)
{
//Create new Object and random for position of Gameobject
GameObject button = new GameObject();
button.transform.parent = panelShow.transform;
button.AddComponent<RectTransform>();
button.AddComponent<Button>();
button.transform.position = new Vector3(Random.Range(100,50),Random.Range(100,26),Random.Range(-25,26));
button.AddComponent<Image>();
button.GetComponent<Button>().onClick.AddListener(() => { Debug.Log($"Button: +{i}+ was clicked"});
levelButtons[i] = button;
}
}
在Unity中,您还可以通过使用List和Prefabs来实现。
,因此问题得以解决...所以基本上我所做的只是更新我的统一版本,然后它使我可以使用UnityEngine.UI,现在问题已得到解决...
感谢大家的宝贵时间……感激不尽