В OnEnable
вы сначала звоните getSatellitesInPlanet
, чтобы заполнить свой список satelliteListFromPlanet
.
Но сразу после того, как вы закончили, вы звоните
satelliteListFromPlanet = new List<Transform>();
Что сбрасывает ваш список на новый пустой.
Чем у вас петля
for (int i = 1; i <= satelliteListFromPlanet.Count; i++)
{ //... }
Но поскольку satelliteListFromPlanet
- пустой список, в данный момент ничего не происходит.
И, наконец, когда вы звоните GetInventory
, ваш список все еще пуст, поэтому
foreach (SatTransfrom sat in satelliteListFromPlanet)
Выполняется никогда, поскольку в satelliteListFromPlanet
нет элементов.
Теперь ко второй проблеме:
У вас есть
for(int i = 0; i< sateliteLostFromPlanet.Count; i++)
Но внутри этого цикла вы делаете
sateliteListFromPlanet.Add(xy);
... Так что же происходит с вашим списком во время выполнения этого цикла?
Он увеличивается на 1 элемент в каждом цикле, поэтому ваше условие цикла i < sateliteListFromPlanet.Count
будет всегда будет истинным, поскольку после каждого выполнения ваш список будет на 1 элемент длиннее, а i
будет 1
больше!
Результат: вы добавляете все больше и больше элементов в один и тот же список «навсегда», пока на вашем устройстве не заканчивается память.