LlTarget
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
| 函数名 |
|---|
| Function: integer llTarget( vector position, float range ); |
| 参数:此函数用于让脚本知道它何时到达某个位置。
它注册一个位置,其范围在注销前连续触发“在目标”事件而不是“在目标”事件。 返回一个句柄(整数),以使用llTargetRemove注销目标。 •矢量位置( vector position)–区域坐标中的位置 •浮动范围(float range) 旋转也有类似的函数:llRotTarget 此函数不移动对象,为此,请使用llSetPos或llMoveToTarget。 |
| 返回值:无 |
| 注意事项 |
|---|
| 位置始终引用当前区域。如果在区域A中将llTarget设置为<100,100,100>,然后将对象移动到区域B,则区域B中的目标将自动变为<100,100,100>。
位置可以设置在区域边界之外,但是只有当范围扩展到当前区域时,才会发生at_target。当前区域之外的部分射程不会在目标激活。 一个脚本只能激活8个目标。其他llTarget将删除最旧的目标集。 |
| 示例 |
|---|
示例1
integer target_id;
vector target_pos;
default
{
state_entry()
{
target_pos = llGetPos() + <1.0, 0.0, 0.0>;
target_id = llTarget(target_pos, 0.5);
}
at_target(integer tnum, vector targetpos, vector ourpos)
{
if (tnum == target_id)
{
llOwnerSay("object is within range of target");
llOwnerSay("target position: " + (string)targetpos + ", object is now at: " + (string)ourpos);
llOwnerSay("this is " + (string)llVecDist(targetpos, ourpos) + " meters from the target");
llTargetRemove(target_id);
}
}
not_at_target()
{
llOwnerSay(
"not there yet - object is at " + (string)llGetPos() +
", which is " + (string)llVecDist(target_pos, llGetPos()) +
" meters from the target (" + (string)target_pos + ")"
);
}
}
|
| 相关函数 |
|---|
| llTargetRemove –取消目标位置
llRotTarget –记录目标旋转 llRotTargetRemove –取消目标旋转 |
| 相关事件 |
|---|
| at_target not_at_target–定位目标事件 |