~~NOTOC~~
<=[[4rpl:start| Index]]
* [[4rpl:commands:GetUnitPosition|Get]]
* [[4rpl:commands:SetUnitPosition|Set]]
====== GetUnitPosition ======
GetUnitPosition(<-UID) ->pos
===== Description =====
Get the 3D position of a unit. A vector is returned. The X and Z positions are where on the map the unit is, and the Y coordinate
is the height, or elevation, of the unit.
Note: If this call is attempted on an non-existing unit, nothing will be put on the stack.
In V 2.4, this behavior changes and this API will now return V3(0 0 0), similar to other APIs.
===== Examples =====
GetUnitPosition(<-UID) ->pos
# to extract the individual values from the above vector:
<-pos.x ->positionX
<-pos.y ->positionY
<-pos.z ->positonZ
# or use the .dot syntax above to directly access the values in the vector, or
EV3(<-pos) ->z ->y ->x
A "safe" method to use this function and to handle the lack of a return value on non-existent units are as follows:
Trace (@UnitPos(7) )
:unitPos
StackSize ->size
GetUnitPosition
If (Stacksize <-size NEQ)
V3(-1 -1 -1)
endif
<=[[4rpl:start| Index]]