LlDetectedTouchUV/ja

From Second Life Wiki

メインページ > LlDetectedTouchUV > LlDetectedTouchUV/ja
Jump to: navigation, search

関数: vector llDetectedTouchUV( integer index );

touch された点の、テクスチャ上の座標のvector値を返します。

• integer index 探知情報の番号

index には負のインデックスを使用できません。
touch 系イベントでのみ有効です。touch されたプリムとイベントが処理されるプリムは別かもしれません。これは llDetectedLinkNumber でチェックできます。同様に、どの面が touch されたかは llDetectedTouchFace でチェックできます。
x, y 座標はそれぞれ u, v 座標に対応します (<u, v, 0.0>)。
UV 座標を取得できなかった場合は TOUCH_INVALID_TEXCOORD が返されます。詳細は 警告 を参照してください。

警告

  • 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) U); とせず、UV を使って直接
        // llSay(0, (string) UV.x); としてもよい。
    }
}
 

関連項目

ディープノート

経緯

この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。
In other languages