Difference between revisions of "LlDetectedTouchUV/ja"

From Second Life Wiki
Jump to navigation Jump to search
(Initial translation)
 
 
(3 intermediate revisions by one other user not shown)
Line 2: Line 2:
|func_id=337|func_sleep=0.0|func_energy=10.0
|func_id=337|func_sleep=0.0|func_energy=10.0
|func=llDetectedTouchUV
|func=llDetectedTouchUV
|return_type=vector|return_text=touch された点の、テクスチャ上の座標
|func_desc=touch された点の、テクスチャ上の座標を vector で返します。ベクトル座標の x と y には、それぞれ u 軸と v 軸の面の座標が入っています  ('''{{NoWrap|{{LSL_VR|u|v|0.0}}}}''')。
{{LSL Const/ja|TOUCH_INVALID_TEXCOORD|vector|{{LSL_VR|-1.0|-1.0|0.0}}}} が、タッチされた UV 座標が特定できないときに返却されます。詳細は [[#警告|警告]] を見てください。
|p1_type=integer|p1_name=index
|p1_type=integer|p1_name=index
|func_footnote={{LSLGC/ja|Touch|touch}} 系イベントでのみ有効です。touch されたプリムとイベントが処理されるプリムは別かもしれません。これは {{LSLG/ja|llDetectedLinkNumber}} でチェックできます。同様に、どの面が touch されたかは {{LSLG/ja|llDetectedTouchFace}} でチェックできます。<br />
|func_footnote={{LSLGC/ja|Touch|touch}} 系イベントでのみ有効です。touch されたプリムとイベントが処理されるプリムは別かもしれません。これは {{LSLG/ja|llDetectedLinkNumber}} でチェックできます。同様に、どの面が touch されたかは {{LSLG/ja|llDetectedTouchFace}} でチェックできます。<br />
x, y 座標はそれぞれ u, v 座標に対応します ('''{{NoWrap|{{LSL_VR|u|v|0.0}}}}''')。<br />
UV 座標を取得できなかった場合は {{LSL Const|TOUCH_INVALID_TEXCOORD|vector|{{LSL_VR|-1.0|-1.0|0.0}}}} が返されます。詳細は [[#.E8.AD.A6.E5.91.8A|警告]] を参照してください。
|func_desc
|func_desc
|spec=
|spec=
|caveats=
|caveats=
* 以下の場合は {{LSL Const|TOUCH_INVALID_TEXCOORD|vector|{{LSL_VR|-1.0|-1.0|0.0}}}} が返されます:
* 以下の場合は {{LSL Const/ja|TOUCH_INVALID_TEXCOORD|vector|{{LSL_VR|-1.0|-1.0|0.0}}}} が返されます:
** アバターのビューアが touch 面の検出に対応していない。
** アバターのビューアが touch 面の検出に対応していない。
*** ビューアの対応は {{LSLG/ja|llDetectedTouchFace}} の戻り値でチェックできます。
*** ビューアの対応は {{LSLG/ja|llDetectedTouchFace}} の戻り値でチェックできます。
Line 17: Line 16:
** この関数を呼び出したイベントが {{LSLGC/ja|Touch|touch}} 系イベントでない。
** この関数を呼び出したイベントが {{LSLGC/ja|Touch|touch}} 系イベントでない。
|examples=
|examples=
<lsl>
<source lang="lsl2">
default
default
{
{
Line 27: Line 26:
     }
     }
}
}
</lsl>
</source>
<lsl>
<source lang="lsl2">
default
default
{
{
Line 36: Line 35:
         float U = UV.x;
         float U = UV.x;
         float V = UV.y;
         float V = UV.y;
         // 上のようにする事で U, V 座標を個別に取得し、また if 文で比較したりも
         // 上のようにする事で U, V 座標を個別に取得したり、また if 文で別々に比較したりすることができます。
         // できます。もちろん常に別変数へ取り分ける必要はなく、vector 値を
         // もちろんベクトルの中身をそれぞれ別個の変数へ格納する必要はなく、
         // 介して取得しても構いません。
         // vector 値を介して取得しても構いません。このように。
        // 訳注: 上の例ならば llSay(0, (string) U); とせず、UV を使って直接
         // llSay(0, (string) UV.x);
         // llSay(0, (string) UV.x); としてもよい。
     }
     }
}
}
</lsl>
</source>
|helpers
|helpers
|related
|related
Line 59: Line 57:
|also_articles
|also_articles
|notes
|notes
|history=*Introduced in {{SVN|870|rev=92872|trunk=*|anchor=file14|date=Wednesday, 23 July 2008}}.
|history=*{{SVN|870|rev=92872|trunk=*|anchor=file14|date=Wednesday, 23 July 2008}} で導入。
*Server support available in Second Life Server 1.24.7.98039, client support in Release Candidate viewer 1.21.4 (98167).
*サーバでのサポートは Second Life では 1.24.7.98039 から、クライアントんサポートは Release Candidate ビューワでは 1.21.4 (98167) から。
|cat1=Touch
|cat1=Touch
|cat2
|cat2

Latest revision as of 14:33, 25 February 2016

要約

関数: llDetectedTouchUV( integer index );

touch された点の、テクスチャ上の座標を vector で返します。ベクトル座標の x と y には、それぞれ u 軸と v 軸の面の座標が入っています (<u, v, 0.0>)。 TOUCH_INVALID_TEXCOORD が、タッチされた UV 座標が特定できないときに返却されます。詳細は 警告 を見てください。

• integer index 探知情報の番号

index には 負のインデックス を使用できません。 touch 系イベントでのみ有効です。touch されたプリムとイベントが処理されるプリムは別かもしれません。これは llDetectedLinkNumber でチェックできます。同様に、どの面が touch されたかは llDetectedTouchFace でチェックできます。

警告

  • index が正常なインデックス範囲を外れていても、スクリプトはエラー表示を出さずに処理を続けます。
  • 以下の場合は TOUCH_INVALID_TEXCOORD が返されます:
    • アバターのビューアが touch 面の検出に対応していない。
    • touch 点がプリムの表面から外れた。
    • touch 点を取得できないほど、touch 点が面の端に近すぎた。
    • この関数を呼び出したイベントが touch 系イベントでない。

サンプル

default
{
    touch_start(integer UV_detected)
    {
        integer i = 0;
        for(; i<UV_detected; ++i)
            llWhisper(0, "UV clicked: " + (string)llDetectedTouchUV(i));
    }
}
default
{
    touch_start(integer total_number)
    {
        vector UV = llDetectedTouchUV(0);
        float U = UV.x;
        float V = UV.y;
        // 上のようにする事で U, V 座標を個別に取得したり、また if 文で別々に比較したりすることができます。
        // もちろんベクトルの中身をそれぞれ別個の変数へ格納する必要はなく、
        // vector 値を介して取得しても構いません。このように。
        // llSay(0, (string) UV.x);
    }
}

関連項目

特記事項

経緯

  • SVN:870 r92872 Trunk Wednesday, 23 July 2008 で導入。
  • サーバでのサポートは Second Life では 1.24.7.98039 から、クライアントんサポートは Release Candidate ビューワでは 1.21.4 (98167) から。

Search JIRA for related Issues

Signature

function void llDetectedTouchUV( integer index );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。