This is an old revision of the document!
⇐ Index
Available in version 1.3 and later.
GetUnits(<-unitType <-startPos <-range <-isSquare <-is3D <-requireLOS <-enemyState <-builtState <-imperviousState) ->units
Returns list of units in range of a given position. The returned list is sorted so that the first item in the list is the closest.
Note: The only difference between this API and GetUnitsInRange is this API takes a 'unitType' parameter. By specifying a unitType, less units are searched over resulting in potentially higher performance.
"" ->unitType 10 ->cellX 15 ->cellZ 20 ->range false ->isSquare true ->is3D true ->requireLOS 2 ->enemyState 1 ->builtState 1 ->imperviousState GetTerrain(<-cellX <-cellZ) 1 + ->terrain GetUnits(<-unitType V3(<-cellX <-terrain <-cellZ) <-range <-isSquare <-is3D <-requireLOS <-enemyState <-builtState <-imperviousState) ->units
GetUnits takes a unit type and from that it will internally find all units of that type. It then enumerates those units and checks if they are in range and if they match the state filters. So GetUnits can be used to find any unit (air, map, or neither). GetUnitsInRange doesn't take a unit type. It just searches in a range around the specified coordinates. It only finds units that leave a footprint on the map. So it won't work for flying units (or land based units that are moving).