“LlDetectedTouchPos”的版本间的差异

来自人工智能助力教育知识百科
跳转至: 导航搜索
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: vector llDetectedTouchPos( integer index ); |参数= 参…”)
 
Qmf讨论 | 贡献
 
(未显示同一用户的1个中间版本)
第4行: 第4行:
 
{{函数详情
 
{{函数详情
 
|函数名 = Function: vector llDetectedTouchPos( integer index );
 
|函数名 = Function: vector llDetectedTouchPos( integer index );
|参数= 参数:integer index–Index of detection information index does not support negative indexes.
+
|参数= 参数:检测信息索引不支持负索引。
|返回值= 返回值:Returns the vector position where the object was touched in region coordinates, unless it is attached to the HUD, in which case it returns the position in screen space coordinates.
+
|返回值= 返回值:返回在区域坐标中接触对象的矢量位置,除非它附加到HUD,在这种情况下,它在屏幕空间坐标中返回位置。
  
  
 
|注意事项=
 
|注意事项=
 
注意事项
 
注意事项
*HUD attachments currently return coordinates relative to the center of the screen rather than the attachment point. SVC-3425
+
*HUD的附件目前返回坐标相对于屏幕的中心,而不是附着点。svc - 3425
*If index is out of bounds the script continues to execute without an error message.
+
*如果索引超出界限,脚本将继续执行,不会出现错误消息。
*TOUCH_INVALID_VECTOR is returned when...
+
*当…时返回TOUCH_INVALID_VECTOR
**The avatar's viewer does not support face touch detection.
+
**头像查看器不支持面部触摸检测。
***To check if face touch detection is supported check the return of llDetectedTouchFace.
+
***检查是否支持face touch检测,检查llDetectedTouchFace返回。
**The touch has moved off the surface of the prim.
+
**触摸已经离开了表面的prim。
**The event triggered is not a touch event.
+
**触发的事件不是触摸事件。
  
 
|示例=
 
|示例=
第55行: 第55行:
  
  
|相关函数=
+
|相关函数=
[[touch_start]]
 
[[touch]]
 
[[touch_end]]
 
 
 
 
 
 
 
|相关事件=
 
 
[[llDetectedLinkNumber]]
 
[[llDetectedLinkNumber]]
 
[[llDetectedTouchFace]]
 
[[llDetectedTouchFace]]
第68行: 第61行:
 
[[llDetectedTouchUV]]
 
[[llDetectedTouchUV]]
 
[[llDetectedTouchNormal]]
 
[[llDetectedTouchNormal]]
[[llDetectedTouchBinormal]]
+
[[llDetectedTouchBinormal]]
 +
 
 +
 
 +
|相关事件=
 +
[[touch_start]]
 +
[[touch]]
 +
[[touch_end]]
  
 
}}
 
}}

2021年1月20日 (三) 04:14的最新版本

Template:Needs Translation/


函数名
Function: vector llDetectedTouchPos( integer index );
参数:检测信息索引不支持负索引。
返回值:返回在区域坐标中接触对象的矢量位置,除非它附加到HUD,在这种情况下,它在屏幕空间坐标中返回位置。
注意事项
注意事项
  • HUD的附件目前返回坐标相对于屏幕的中心,而不是附着点。svc - 3425
  • 如果索引超出界限,脚本将继续执行,不会出现错误消息。
  • 当…时返回TOUCH_INVALID_VECTOR
    • 头像查看器不支持面部触摸检测。
      • 检查是否支持face touch检测,检查llDetectedTouchFace返回。
    • 触摸已经离开了表面的prim。
    • 触发的事件不是触摸事件。
示例
示例1
default
{
    touch_start(integer num_detected)
    {
        llWhisper(0, "Pos clicked: " + (string)llDetectedTouchPos(0));
    }
}

示例2

vector GetRealTouchPos(vector pos)
{
//  By Ariu Arai for free use to anyone
//  Returns a useful HUD Position Vector from the llDetectedTouchPos(); function
//  USE: vector pos = GetRealTouchPos(llDetectedTouchPos(0)); .. Etc.
//  This function is intended to be used to move child prims to where the user clicks. This does not work on the root prim.
 
    integer point = llGetAttached();
    vector offset;
 
    if      (point == ATTACH_HUD_TOP_RIGHT)    offset = <1.0, 0.933,-0.5>;
    else if (point == ATTACH_HUD_TOP_CENTER)   offset = <1.0, 0.000,-0.5>;
    else if (point == ATTACH_HUD_TOP_LEFT)     offset = <1.0,-0.933,-0.5>;
    else if (point == ATTACH_HUD_BOTTOM_LEFT)  offset = <1.0,-0.933, 0.5>;
    else if (point == ATTACH_HUD_BOTTOM)       offset = <1.0, 0.000, 0.5>;
    else if (point == ATTACH_HUD_BOTTOM_RIGHT) offset = <1.0, 0.933, 0.5>;
 
    //return (pos - llGetLocalPos()) + (offset * llGetLocalRot());
    return ((offset - llGetLocalPos()) + pos) / llGetLocalRot();
}
相关函数
llDetectedLinkNumber

llDetectedTouchFace llDetectedTouchST llDetectedTouchUV llDetectedTouchNormal llDetectedTouchBinormal

相关事件
touch_start

touch touch_end