Difference between revisions of "LlTarget/ja"
< LlTarget
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) |
|||
Line 14: | Line 14: | ||
|constants | |constants | ||
|examples= | |examples= | ||
< | <source lang="lsl2"> | ||
integer target_id; | integer target_id; | ||
vector target_pos; | vector target_pos; | ||
Line 44: | Line 44: | ||
} | } | ||
} | } | ||
</ | </source> | ||
|helpers | |helpers | ||
|also_functions= | |also_functions= |
Latest revision as of 12:47, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: integer llTarget( vector position, float range );
この関数で、ある位置に到達したときに、スクリプトにそれを知らせることができます。
position を range と一緒に登録し、登録解除されるまで at_target と not_at_target のイベントを継続的に発生させ続けます。
llTargetRemove を使って目標を登録解除するためのハンドラを integer で返します。
• vector | position | |||
• float | range |
同じような関数が回転についてもあります: llRotTarget
この関数はオブジェクトを移動させません。移動させるには、 llSetPos や llMoveToTarget を使用します。
警告
サンプル
integer target_id;
vector target_pos;
default
{
state_entry()
{
target_pos = llGetPos() + <1.0, 0.0, 0.0>;
target_id = llTarget(target_pos, 0.5);
}
at_target(integer tnum, vector targetpos, vector ourpos)
{
if (tnum == target_id)
{
llOwnerSay("オブジェクトは目標範囲に入っています");
llOwnerSay("目標位置: " + (string)targetpos + ", オブジェクトの現在位置: " + (string)ourpos);
llOwnerSay("これは目標から " + (string)llVecDist(targetpos, ourpos) + " メートル離れています");
llTargetRemove(target_id);
}
}
not_at_target()
{
llOwnerSay(
"まだ到達していません - オブジェクトは " + (string)llGetPos() +
" にあり, それは目標から " + (string)llVecDist(target_pos, llGetPos()) +
" メートル離れています (" + (string)target_pos + ")"
);
}
}
関連項目
イベント
• at_target | not_at_target | – | 位置目標に達したときのイベント | |
• at_rot_target | not_at_rot_target | – | 回転目標に達したときのイベント |
関数
• | llTargetRemove | – | 位置目標を登録解除します | |
• | llRotTarget | – | 回転目標を登録します | |
• | llRotTargetRemove | – | 回転目標を登録解除します |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。