No sensor/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
警告
- スクリプトに sensor イベントがないと、 no_sensor が発生しません。 ~ SVC-2409
- sensor/no_sensor は必ずしも最善なやり方ではありません:
- 何かが範囲内/範囲外に入っているかを調べるのは、やり過ぎです。このケースでは llGetObjectDetails を、 便利なスニペット の章にあるように使用しましょう。
- アバターが地域にいるかどうかを調べるには、 llGetAgentSize を使ってみましょう。
サンプル
//範囲内の全てのアバターをリストアップします。
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.");
}
}
便利なスニペット
//ユーザが範囲内にいないことを発見する他のやり方です。
//センサーをまったく使っていないので、上の警告はあてはまりません。
integer InRange(key uuid, float distance)
{
list data = llGetObjectDetails(uuid, [OBJECT_POS]);
if(data == [])
return 0;
return llVecDist(llList2Vector(data, 0), llGetPos()) <= dist;
}
参考情報
関数
• | llSensor | |||
• | llSensorRepeat |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。