private void ReinsertUnitInContent(BattleUnit unit, Transform content, AIIManager manager) { UnitItem[] units = content.GetComponentsInChildren <UnitItem>(); AxisInteractableItem thisItem = null; foreach (UnitItem item in units) { if (item.unit == unit) { thisItem = item.GetComponent <AxisInteractableItem>(); break; } } AxisInteractableItem previousItem = null; AxisInteractableItem nextItem = manager.firstItem; while (nextItem != manager.lastItem && (System.Array.IndexOf(units, nextItem.GetComponent <UnitItem>()) < System.Array.IndexOf(units, thisItem.GetComponent <UnitItem>()))) { previousItem = nextItem; nextItem = nextItem.downItem; } thisItem.upItem = previousItem; if (previousItem == null) { manager.firstItem = thisItem; } else { previousItem.downItem = thisItem; } thisItem.downItem = nextItem; if (nextItem == null) { manager.lastItem = thisItem; } else { thisItem.downItem = nextItem; } }