LlDetectedTouchFace

来自人工智能助力教育知识百科
Qmf讨论 | 贡献2020年4月13日 (一) 10:07的版本 (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: integer llDetectedTouchFace( integer index ); |参数= 参…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: integer llDetectedTouchFace( integer index );
参数:integer index–Index of detection information index does not support negative indexes.
返回值:Returns an integer that is the index of the face the avatar clicked on.
注意事项
*If index is out of bounds the script continues to execute without an error message.
  • TOUCH_INVALID_FACE is returned when...
    • The avatar's viewer does not support face touch detection.
    • The touch has moved off the surface of the prim.
    • The event triggered is not a touch event.
示例
示例1
// This is the essential script to drop in a prim when you need to ascertain the number of a face (or faces)
// Touch the prim surfaces to learn their face numbers, which you can then use in other scripts for texturing, colouring etc.
 
say(string message)
{
    llSay(PUBLIC_CHANNEL, message);
}
 
default
{
    touch_start(integer num_detected)
    {
        integer face = llDetectedTouchFace(0);
 
        if (face == TOUCH_INVALID_FACE)
//      {
            say("The touched face could not be determined");
//      }
        else
//      {
            say("You touched face number " + (string) face);
//      }
    }
}

示例2

default
{
    touch_start(integer num_detected)
    {
        integer link = llDetectedLinkNumber(0);
        integer face = llDetectedTouchFace(0);
 
        if (face == TOUCH_INVALID_FACE)
            llSay(PUBLIC_CHANNEL, "Sorry, your viewer doesn't support touched faces.");
        else
        {
            // store the original color
            list   colorParams   = llGetLinkPrimitiveParams(link, [PRIM_COLOR, face]);
            vector originalColor = llList2Vector(colorParams, 0);
 
            // color detected face white
            llSetLinkColor(link, <1.0, 1.0, 1.0>, face);
            llSleep(0.2);
 
            // color detected face black
            llSetLinkColor(link, ZERO_VECTOR, face);
            llSleep(0.2);
 
            // color detected face back to original color
            llSetLinkColor(link, originalColor, face);
        }
    }
}
相关函数
llDetectedLinkNumber

llDetectedTouchST llDetectedTouchUV llDetectedTouchPos llDetectedTouchNormal llDetectedTouchBinormal

相关事件
touch_start

touch touch_end