FireDrago19
@FireDrago19

Object reference not set to an instance of an object, C#, Unity?

Существуют ли какие-то ограничения по вложениям класса в класс?
Есть класс "month", в котором должны храниться классы "day", и в каждом "day" хранится несколько классов "para".
Скрипт:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;

public class main : MonoBehaviour
{
    public TextAsset textAssetData;
    
    [System.Serializable]
    public class para
    {
        
    }

    [System.Serializable]
    public class day
    {
        public para[] pars = new para[6];
        public string date;
    }
    
    [System.Serializable]
    public class month
    {
        public int numbOfMonth;
        public day[] days;
    }
    
    public month september = new month();
    public Text textt;
    
    private void Start()
    {
        readCSV();
    }

    void readCSV()
    {
        string[] data = textAssetData.text.Split(new string[] {",", "\n", ";"}, StringSplitOptions.None);
        september = new month();
        september.days = new day[6];
        for (int i = 0; i < september.days.Length; i++)
        {
            september.days[i].pars = new para[6];
        }
        
        Debug.Log(september);
        Debug.Log(september.days);
        Debug.Log(september.days[0].pars);
    }
}


Вроде всё инициализировал, но выходит ошибка на строке внутри цикла:
september.days[i].pars = new para[6];

63112c7fc41bc787851760.png

63112cdcd4928500228777.png
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
yarosroman
@yarosroman Куратор тега C#
C# the best
september.days = new day[6]; вы инициируете массив, а кто элементы массива создавать будет, он пустой. Создание массива не означает сразу создание в нем элементов, рекомендую основы шарпа почитать, на тему создание объектов и массивов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы