Difference between revisions of "No sensor/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 8: Line 8:
|caveats=
|caveats=
*sensor/no_sensor は必ずしも最善なやり方ではありません:
*sensor/no_sensor は必ずしも最善なやり方ではありません:
**何かが範囲内/範囲外に入っているかを調べるのは、やり過ぎです。このケースでは {{LSLG/ja|llGetObjectDetails}} を、 [[#Useful Snippets|便利なスペニット]] の章にあるように使用しましょう。
**何かが範囲内/範囲外に入っているかを調べるのは、やり過ぎです。このケースでは {{LSLG/ja|llGetObjectDetails}} を、 [[#Useful Snippets|便利なスニペット]] の章にあるように使用しましょう。
**アバターが地域にいるかどうかを調べるには、 {{LSLG/ja|llGetAgentSize}} を使ってみましょう。
**アバターが地域にいるかどうかを調べるには、 {{LSLG/ja|llGetAgentSize}} を使ってみましょう。
|examples=
|examples=

Revision as of 11:01, 4 March 2011

説明

! イベント: no_sensor( ){ ; }

llSensorllSensorRepeat の呼び出しで発生します。


警告

  • スクリプトに sensor イベントがないと、 no_sensor が発生しません。 ~ SVC-2409
    • 空の sensor が条件を満たしているのに、 no_sensor が発生します。
  • sensor/no_sensor は必ずしも最善なやり方ではありません:
    • 何かが範囲内/範囲外に入っているかを調べるのは、やり過ぎです。このケースでは llGetObjectDetails を、 便利なスニペット の章にあるように使用しましょう。
    • アバターが地域にいるかどうかを調べるには、 llGetAgentSize を使ってみましょう。

サンプル

<lsl>//範囲内の全てのアバターをリストアップします。 default {

    on_rez(integer i) {
         llSensor("", "", AGENT, 100000, 10000);
    }
    sensor(integer num) {
         integer i = 0;
         do {
              llOwnerSay(llDetectedName(i) + " is " + (string)llVecDist(llGetPos(), llDetectedPos(i)) + "m away.");
         }while(++i < num);
    }
    no_sensor() {
         llOwnerSay("No avatars in range.");
    }

}</lsl>

便利なスニペット

<lsl>//ユーザが範囲内にいないことを発見する他のやり方です。 //センサーをまったく使っていないので、上の警告はあてはまりません。

integer InRange(key uuid, float distance) {

   list data = llGetObjectDetails(uuid, [OBJECT_POS]);
   if(data == [])
       return 0;
   return llVecDist(llList2Vector(data, 0), llGetPos()) <= dist;

}</lsl>

参考情報

関数

•  llSensor
•  llSensorRepeat

特記事項

議論

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