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