Ошибка при попытке найти элементы массива - PullRequest
0 голосов
/ 30 апреля 2018

Как я могу найти элементы "флажки", чтобы создать массив из них? Я не хочу делать переменную общедоступной, потому что там много элементов.

Появляется эта ошибка: 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 голосов
/ 30 апреля 2018

Как ответ на вашу вторую проблему (исключение Null Reference) -

В вашем методе Start вы объявляете локальный массив CheckBoxes, который скрывает объявление поля класса - используйте

void Start()
{ 
  checkboxes = GameObject.FindGameObjectWithTag("TESOROS").GetComponents<CheckBoxes>();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...