我怎样才能找到“复选框”元素来制作数组呢?我不想公开变量,因为有很多元素。
出现此错误:Assets / _TES / Scripts / CheckboxEnabledSaver.cs(13,40):错误CS0029:无法隐式转换类型UnityEngine.GameObject[]' to
CheckBoxes []'
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using SickscoreGames.HUDNavigationSystem;
public class CheckboxEnabledSaver : MonoBehaviour
{
private CheckBoxes[] checkboxes;
public string file = "myFile.txt";
void Start()
{
CheckBoxes[] checkboxes = GameObject.FindGameObjectWithTag ("TESOROS").GetComponents<CheckBoxes>();
}
public void SaveCheckboxes()
{
bool[] checkboxEnabled = new bool[checkboxes.Length];
for(int i = 0; i < checkboxes.Length; i++)
checkboxEnabled [i] = !(checkboxes [i].sCollider.enabled);
ES2.Save(checkboxEnabled, file);
}
public void LoadCheckboxes ()
{
if(ES2.Exists(file))
{
bool[] checkboxEnabled = ES2.LoadArray<bool>(file);
for(int i = 0; i < checkboxes.Length; i++)
{
if(checkboxEnabled [i])
{
checkboxes [i].sCollider.enabled = false;
checkboxes [i].ChangeIcon ();
}
}
}
}
}
答案 0 :(得分:1)
作为第二个问题的答案(空参考&#34;例外) -
在你的Start方法中,你声明一个隐藏类字段声明的本地CheckBoxes数组 - 使用
void Start()
{
checkboxes = GameObject.FindGameObjectWithTag("TESOROS").GetComponents<CheckBoxes>();
}