查看“LlTarget”的源代码
←
LlTarget
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = 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 <pre> 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 + ")" ); } } </pre> |相关函数= [[llTargetRemove]] –取消目标位置 [[llRotTarget]] –记录目标旋转 [[llRotTargetRemove]] –取消目标旋转 |相关事件=[[at_target]] [[not_at_target]]–定位目标事件 [[at_rot_target]][[not_at_rot_target]]–旋转目标事件 }}
该页面使用的模板:
模板:LSL Header
(
查看源代码
)
模板:LSLC
(
查看源代码
)
模板:LSLGC
(
查看源代码
)
模板:Multi-lang
(
查看源代码
)
模板:函数详情
(
查看源代码
)
返回至
LlTarget
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
网站首页
知识百科
编辑帮助
最近更改
工具
链入页面
相关更改
特殊页面
页面信息