Участник класса MonoBehaviour теряет свое значение. Вот мой код, чтобы объяснить.значение переменной становится нулевым
У меня есть класс для хранения данных:
public class Tile
{
public string name;
public string id;
}
Существует второй класс, где я использую Tile
класс:
public class TilesManager : MonoBehaviour
{
private List<Tile> tiles;
public void Awake()
{
tiles = new List<Tile>()
{
new Tile() { name="A", id="A" },
new Tile() { name="B", id="B" },
new Tile() { name="C", id="C" },
};
// here i set break point and the tiles has value and contains 3 items
}
public Tile GetTileAtIndex(int index)
{
if(index < 0) index = 0;
if(index > 2) index = 2;
// here i set break point the tiles value is null !
return tiles[index];
}
}
Я называю метод «GetTileAtIndex» из другого сценария. и он дает мне нулевое исключение ссылки в строке «return tiles [index];».
Вы получаете доступ к экземпляру класса с помощью GetComponent в GameObject, который добавлен в иерархию, или вы создаете объект TilesManager с использованием нового оператора? –