vector llGetPos()
Returns the
prim's position in
region coordinates, which are relative to the
simulator's southwest corner.
When
called from within a
child prim in a
linked set, it returns the position of the child in region coordinates,
not the
parent's position. To get the position of a child object relative to its parent, use
llGetLocalPos. To get the position of the parent from a script within a child prim, use
llGetRootPosition.
When used in an object
attached to an
avatar, it will always return the position of the avatar's center in region coordinates, though child objects in attachments will return the position of the child, as stated above.
Example:
// say location when touched
default {
touch_start(integer num_detected) {
llSay(0, "I'm at " + (string)llGetPos());
}
}
Q: As of SL 1.6.7, the editor tooltip for llGetPos says "gets the position (if the script isn't physical)". Is that true? Does this only work on non-physical objects?
A: No, it's not true. The tooltip is in error. (It's misleading as well. A script can't be physical; only objects can.) llGetPos will return the current position regardless of physics status.
Q: Is llGetPos().x valid? (I can get a single component of a vector like so: vector_name.x.)
A: No, in LSL, you can only act upon a component of a vector that exists as a variable. You need to declare a vector first.
Use
llSetPos to set the object's position.
See also
llGetPrimitiveParams.
Functions |
Dynamics |
Position