LlDetectedTouchUV/ja

From Second Life Wiki
< LlDetectedTouchUV
Revision as of 04:46, 10 April 2010 by Mako Nozaki (talk | contribs) (カテゴリ変更)
Jump to navigation Jump to 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 系イベントでない。

サンプル

<lsl> default {

   touch_start(integer UV_detected)
   {
       integer i = 0;
       for(; i<UV_detected; ++i)
           llWhisper(0, "UV clicked: " + (string)llDetectedTouchUV(i));
   }

} </lsl> <lsl> 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>

関連項目

特記事項

経緯

Search JIRA for related Issues

Signature

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