Почему неправильно добавляются строки в двумерный массив? - C#

Узнай цену своей работы

Формулировка задачи:

Добавляю один объект - всё нормально. Добавляю второй - длина массива увеличивается вчетверо.

Задаю так:

public class TrackerStruct
    {
        public GameObject TrackerObj;       
        public Vector3 TrackerCamPos;
    }
    public List<TrackerStruct> Trackers = new List<TrackerStruct>();
 
    public List<List<TrackerStruct>> TrackerCameras = new List<List<TrackerStruct>>();

Добавляю так.

GameObject SomeTracker = Instantiate(TrackerPrefab, Vector3.zero, Quaternion.identity);
        SomeTracker.name = "Tracker" + (Trackers.Count + 1).ToString();
        SomeTracker.transform.SetParent(Canvas.transform);
        SomeTracker.GetComponent<TrackerScript>().TrackerID = Trackers.Count;
 
        Trackers.Add(new TrackerStruct
        {
            TrackerObj = SomeTracker,
            TrackerCamPos = new Vector3(0, 0, 0)
 
        });
        // something wrong
 
        for (int i = 0; i < Cameras.Count; i++)
        {
            TrackerCameras.Add(Trackers);
        }

Вывожу так

Name = "";
 
        for (int t = 0; t < Trackers.Count; t++)
        {
            for (int c = 0; c < TrackerCameras.Count; c++)
            {
                Name = Name + TrackerCameras[c][t].TrackerObj.name + "  " + TrackerCameras[c][t].TrackerCamPos.ToString();
            }
            Name = Name + "\n";
        }
 
        Name = Name + Trackers.Count.ToString() + "   " + TrackerCameras.Count.ToString();
            TextMassive.GetComponent<Text>().text = Name;
        Name = "";

Работает не так как надо. Нужно чтобы каждый трекер имел информацию по каждой камере. Если камеры 3, то и столбцов должно быть 3. А у меня получается, что при добавлении каждого трекера удваивается число столбцов.

Решение задачи: «Почему неправильно добавляются строки в двумерный массив?»

textual
Листинг программы
        for (int i = 0; i < Cameras.Count; i++)
        {
            TrackerCameras.Add(Trackers);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы