Difference between revisions of "No sensor/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m |
|||
(One intermediate revision by one other user not shown) | |||
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= | ||
< | <source lang="lsl2">//範囲内の全てのアバターをリストアップします。 | ||
default { | default { | ||
on_rez(integer i) { | on_rez(integer i) { | ||
Line 25: | Line 25: | ||
llOwnerSay("No avatars in range."); | llOwnerSay("No avatars in range."); | ||
} | } | ||
}</ | }</source> | ||
|helpers= | |helpers= | ||
< | <source lang="lsl2">//ユーザが範囲内にいないことを発見する他のやり方です。 | ||
//センサーをまったく使っていないので、上の警告はあてはまりません。 | //センサーをまったく使っていないので、上の警告はあてはまりません。 | ||
Line 37: | Line 37: | ||
return 0; | return 0; | ||
return llVecDist(llList2Vector(data, 0), llGetPos()) <= dist; | return llVecDist(llList2Vector(data, 0), llGetPos()) <= dist; | ||
}</ | }</source> | ||
|also_header | |also_header | ||
|also_events | |also_events |
Latest revision as of 09:16, 21 February 2016
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の関連した項目が参考になるかもしれません。