Attach/ja

From Second Life Wiki
Jump to navigation Jump to search

説明

イベント: attach( key id ){ ; }

オブジェクトがエージェントに 装着 されたか、エージェントから取り外されたときにオブジェクト内部で発生します。

• key id 装着された場合はアバターの名前、装着されなくなった場合は NULL_KEY

仕様

発生します

  1. オブジェクトがアバターに装着されたとき
    • 地面の上にあるものを装着したとき
    • 持ち物から装着したとき
    • オブジェクトを装着したアバターがログインしたとき
  2. オブジェクトが取り外されたとき (id == NULL_KEY)
    • 地面の上に落としたとき
    • 持ち物にしまったとき
    • オブジェクトを装着したアバターがログアウトしたとき

発生しません

  1. オブジェクトを装着したアバターがテレポートしたとき
    • CHANGED_TELEPORT でアバターがテレポートしたことを検出します
  2. オブジェクトを装着したアバターが違う地域に移ったとき
    • CHANGED_REGION でアバターが地域を移ったことを検出します

サンプル

以下は attach イベントを単純化した例です。変数 id はスクリプトが入っているオブジェクトを装着したアバターのキーか、 NULL_KEY となります。 if 条件式を使って、変数 id の値を調べています。 <lsl>default {

   attach(key id)
   {
       if(id)//有効なキーか NULL_KEY かを調べます
       {
           llSay(PUBLIC_CHANNEL,"装着されました!");
       }
       else
       {
           llSay(PUBLIC_CHANNEL,"取り外されました!");
       }
   }

}</lsl>

注意点

on_rezattach

持ち物の中から装着したときや、ログイン時には、 on_rezattach の前に発生します。

取り込みタイミング

取り込みの間、オブジェクトには attach イベントを実行するだけの時間が与えられます。スクリプトが取り込まれる瞬間、これらのイベントを実行中でまだ完了していない場合、オブジェクトが次に rez されたときに実行を完了させます (これは望んでいないことかもしれません) 。取り外し時の処理をシンプルにすることをお薦めします。

attach は、最後に rez されたときにスクリプトがループしていた場合には発生しません。 (on_rez と同じです)

参考情報

イベント

• on_rez

関数

• llAttachToAvatar
• llDetachFromAvatar
• llGetAttached

記事

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