LlSetRegionPos
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: integer llSetRegionPos( vector position ); |
参数:
返回一个整数布尔值,如果对象成功放置在距离位置0.1米的范围内,则返回TRUE;否则返回FALSE。详见规范。 •矢量位置–区域坐标中的位置 只有当返回TRUE时,对象才会移动;如果返回FALSE,则对象不会改变位置。 |
返回值:尝试移动整个对象,使根prim位于位置的0.1m范围内。 |
注意事项 |
---|
带有脚本的对象将根prim位置移动到给定位置。位置是区域内的任何位置。如果位置低于地面,它将被设置为X,Y点的地面高度。该功能没有延迟或油门。
如果对象成功放置在距离位置0.1 m的范围内,则返回TRUE。 如果。。。 位置偏离区域10m以上或4096m以上。 位置的x和y分量必须在范围[-10.0,266.0]内。[1] z分量必须在[0.0,4096]范围内。 对象是动态的(启用了物理)。 由于地块/区域限制(对象输入规则、主要限制、禁止等),对象无法移动到位置。 对象是一个化身附件。 如果z位置低于地面,则返回FALSE并移动对象。 |
示例 |
---|
示例1
default { touch_start(integer num_detected) { vector currentPosition = llGetPos(); // check whether the object has successfully been moved // to the center of the sim at the same height integer hasMoved = llSetRegionPos(<128.0, 128.0, currentPosition.z>); if (hasMoved) { llOwnerSay("My new position is now:\n" + "http://maps.secondlife.com/secondlife/" + llEscapeURL(llGetRegionName()) + "/128/128/" + (string)llRound(currentPosition.z) + "/"); } else if ( currentPosition.z < llGround(ZERO_VECTOR) ) { llOwnerSay("My new position is now:\n" + "http://maps.secondlife.com/secondlife/" + llEscapeURL(llGetRegionName()) + "/128/128/" + (string)llCeil(llGround(ZERO_VECTOR)) + "/"); } else llOwnerSay("Move was not possible!"); } } |
相关函数 |
---|
llGetLocalPos –返回prim的本地位置(如果是附加的或非根的)(否则返回全局位置)
llGetRootPosition –获取根prims位置 llGetPos –返回prim的全局位置,即使它是附加的还是非根的 |
相关事件 |
---|