LlDetectedPos

来自人工智能助力教育知识百科
Qmf讨论 | 贡献2020年5月18日 (一) 11:00的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: vector llDetectedPos( integer number );
参数:检测信息号的整数索引不支持负索引。
返回值:返回一个向量,该向量是检测到的对象编号的位置(在区域坐标中)。
注意事项
注意事项
  • 如果数字超出了界限,这个函数返回<0.0,0.0,0.0>,脚本继续执行,没有错误消息。
  • 启用lldetect *函数的事件总是返回至少一个检测到的项。
  • 如果没有检测到任何东西,则不引发检测事件。
  • 检测事件的项检测参数最初不小于1。
示例
示例1
// Get position and distance of toucher
 
default
{
    touch_start(integer total_number)
    {
	// get the position of the avatar touching this prim
	vector pos = llDetectedPos(0);
 
	// compute how far away they are
	float dist = llVecDist(pos, llGetPos() );
 
	llSay(0, "You are " + (string) dist + " metres from me, at coordinates " + (string) pos);
    }
}
// get name and sim position of Avatars within "say" range

示例2

default
{
    state_entry()
    {
        llOwnerSay( "Touch me to get the positions of avatars in 'Say' range" );
    }
 
    touch_start( integer vIntTouchCount )
    {
        // Do a one-off sensor sweep over a 20m radius sphere for avatars
        llSensor( "", "", AGENT, 20, PI );
    }
 
    sensor( integer vIntFound )
    {
        integer vIntCounter = 0;
        //-- loop through all avatars found
        do
        {
            llOwnerSay( llDetectedName( vIntCounter )
                // get the position of this detected avatar
                + (string) llDetectedPos( vIntCounter ) );
        } while (++vIntCounter < vIntFound); 
    }
 
    // sensor does not detect owner if it's attached
    no_sensor()
    {
        llOwnerSay( "I couldn't find anybody" );
    }
}
相关函数
相关事件