public void MoveToObject(GameObject target, MovementController[] units) { if (target.TryGetComponent(out WorldObject worldObject)) { MovementController[] possibleUnits = SkipImpossible(worldObject, units); // om characters die geen interactie kunnen hebben met het object uit te sluiten. Vector2[] positions = Positioning.GetCurrentPositions(possibleUnits); // voor als ze niet kunnen verplaatsen (geen ruimte) Vector2[] destinations = Positioning.GetUnitGroupDestinationsAroundWorldObject(worldObject, positions, possibleUnits); // bepalen van positie rond object SetTarget(worldObject, possibleUnits, destinations); // naar opject verplaatsen en AI instellen voor interactie } else { Vector2[] positions = Positioning.GetCurrentPositions(units); for (int i = 0; i < units.Length; i++) { units[i].MoveToPosition(positions[i]); units[i].ac.actualTarget = null; } } }