LlSensor

来自人工智能助力教育知识百科
Wzc讨论 | 贡献2020年5月25日 (一) 07:33的版本 (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名=Function: llSensor( string name, key id, integer type, float radius, f…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: llSensor( string name, key id, integer type, float radius, float arc );
对名称和id执行一次扫描,类型在前向向量的半径米和弧度范围内

•字符串名称-对象或化身名称! •密钥id–同一区域中的组、化身或对象UUID •整数类型–掩码(代理、代理按旧名称、代理按用户名、主动、被动和/或脚本) •浮子半径-距中心的距离[0.0,96.0 m] •浮动弧–原始物体和可检测物体的局部x轴之间的最大角度,范围为0.0至PI

如果name和/或id为空,则忽略它们。

如果id是无效键或空键,则将其视为空。 根据使用哪个代理*标志确定名称的格式要求

注意事项
当搜索一个化身而不是名字时,使用哪个代理标志并不重要。

对象不会检测到自身,附件也无法检测到佩戴者(包括HUD附件)。 llSensor无法检测附件。 对于要检测的对象,其根基元的中心(它将用llGetRootPosition报告的相同点)必须在传感器光束内。 要检测代理,骨盆附近的点必须位于传感器光束内(与llGetRootPosition在附加到该化身的脚本中报告的相同)。当“高级>角色>显示代理目标”(Advanced>Character>Display Agent Target)处于启用状态时,此点由红色十字光标指示。 如果代理位于对象上,则sat-on对象的根prim将成为代理的第二个传感器目标(但如果化身位于传感器弧之外,请参阅SVC-5145)。 放置在附件根原语中的传感器将使用化身面对的方向作为其前进向量。在mouselook中,这意味着它将出现在化身所看到的任何地方,而在mouselook中,这意味着化身所指向的任何方向。这不包括头像的头部指向何处,或者头像在做什么动画,只要你向前走,头像就会移动的方向。不管对象附着在何处,都是这种情况。 放置在除附件的根prim之外的prim中的传感器将具有相对于根prim的正向的正向偏移,例如,prim中的传感器(其+X方向是根+X的反向)将向后看。 llSensor不跨区域边界检测对象或代理 如果类型为零,传感器将自动失效,不会触发传感器或无传感器。 每次只扫描16个对象。 Search JIRA for related Bugs

示例
这个传感器扫描一个围绕x轴的45度圆锥(PI/2或PI/u两次扫描一个半球;PI是一个球面扫描)。此外,它将只匹配一个代理与遗产名称“总督林登”。
 
default
{
    touch_start(integer total_number)
    {
        llSensor("", NULL_KEY, AGENT, 30.0, PI);
    }
 
    sensor( integer detected )
    {
        while(detected--)
        {
            llOwnerSay(llDetectedName(detected));
        }
    }
}
相关函数
llSensorRepeat –在计时器上运行传感器

llSensorRemove –停止llSensorRepeat定时器

文献: [1]

相关事件
Search JIRA for related Issues