尝试查找数组元素时出错

时间:2018-04-30 10:03:02

标签: c# unity3d

我怎样才能找到“复选框”元素来制作数组呢?我不想公开变量,因为有很多元素。

出现此错误: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 ();

            }

        }
    }
}

}

1 个答案:

答案 0 :(得分:1)

作为第二个问题的答案(空参考&#34;例外) -

在你的Start方法中,你声明一个隐藏类字段声明的本地CheckBoxes数组 - 使用

void Start()
{ 
  checkboxes = GameObject.FindGameObjectWithTag("TESOROS").GetComponents<CheckBoxes>();
}