Почему неправильно добавляются строки в двумерный массив? - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д