“LlDetectedGrab”的版本间的差异
第4行: | 第4行: | ||
{{函数详情 | {{函数详情 | ||
|函数名 = Function: vector llDetectedGrab( integer number ); | |函数名 = Function: vector llDetectedGrab( integer number ); | ||
− | |参数= 参数: | + | |参数= 参数: 检测信息号的整数索引不支持负索引。 |
− | |返回值= | + | |返回值= 返回值:返回一个向量,该向量是用户触摸对象的抓取偏移量;只在触摸事件中起作用。 |
|注意事项= | |注意事项= | ||
注意事项 | 注意事项 | ||
− | * | + | *如果数字超出了界限,这个函数返回<0.0,0.0,0.0>,脚本继续执行,没有错误消息。 |
− | * | + | *启用lldetect *函数的事件总是返回至少一个检测到的项。 |
− | + | 如果没有检测到任何东西,则不引发检测事件。 | |
− | * | + | *检测事件的项检测参数最初不小于1。 |
2020年5月18日 (一) 10:47的版本
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: vector llDetectedGrab( integer number ); |
参数: 检测信息号的整数索引不支持负索引。 |
返回值:返回一个向量,该向量是用户触摸对象的抓取偏移量;只在触摸事件中起作用。 |
注意事项 |
---|
注意事项
如果没有检测到任何东西,则不引发检测事件。
|
示例 |
---|
示例1
default { state_entry() { llSetStatus(PRIM_PHYSICS,TRUE);//This allows the object to be "grabbed" and dragged } touch(integer num_detected) { llSay(0,(string)llDetectedGrab(0));//Be prepared for a great amount of chatted info. //The faster you move the mouse while grabbing the object the greater the offset becomes. //This is not due to the speed but the reaction time of the turn around of the physical prim, //thus an offset (distance from grab to prim center) is created and measured by this function. } } 示例2 /****** Simple llDetectedGrab illustration, rez a prim and add this script. The prim will become a cone that follows mouse grabs. Click and hold the mouse button down on the object, then: - Drag left and right to move parallel to the camera focal plane. - Drag up and down to move to and from the camera. - Hold down Ctrl, then drag up and down to move vertically. ******/ default { state_entry() { llMinEventDelay(0.25); llSetStatus(STATUS_PHYSICS, FALSE); // make the object static for simplicity llSetPrimitiveParams([ PRIM_SIZE, <0.5, 0.5, 0.5>, PRIM_TYPE, PRIM_TYPE_CYLINDER, PRIM_HOLE_DEFAULT, <0.0, 1.0, 0.0>, 0.0, ZERO_VECTOR, ZERO_VECTOR, ZERO_VECTOR ]); // a cone that can follow the mouse pointer } touch(integer total_number) { llLookAt(llGetPos() + llDetectedGrab(0), 1.0, 1.0); } } |
相关函数 |
---|
llPassTouches |
相关事件 |
---|
touch_start |