LlSetPos/ja

From Second Life Wiki
< LlSetPos
Revision as of 13:04, 25 February 2016 by SakuraNoel Fayray (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

要約

関数: llSetPos( vector pos );

オブジェクトまたはプリムを、物理特性を使わずに pos へ移動させます。

• vector pos 状況によって、 リージョン または ローカル座標 (仕様 参照のこと) 。

移動はアタッチメントでないルートプリムでは 1 回の呼び出しで 10 m に制限されています。[1]

仕様

座標フレーム
  • ルートプリム (もしくはシングルプリムのオブジェクト)
  • 子プリム (ルートプリムでない)

警告

  • この関数は 0.2 秒間、スクリプトを停止します。
  • この関数は内部でローカル座標とリージョン座標が混在しているため、プリムの位置が知りたいときは llGetLocalPos を使用するのが最適です。
  • この関数は物理オブジェクトでは動作しません。代わりに llMoveToTarget を使用しましょう。

サンプル

//誰かがタッチしたら、オブジェクトを 1m 上へ移動させます。
default {
     touch_start(integer i) {
          llSetPos(llGetPos() + <0,0,1>);
     }
}
// 小さい移動のときのバグを回避するためにこれを使います
// - created by Madpeter Zond
// 注意: リンクされたプリムで、移動可能な範囲を超えたかどうかのチェックは行っていません
llSetLocalPos(vector offset)
{
    vector save = offset;
    if(offset.x < 0.0) offset.x -= 1;
    else offset.x += 1;
    if(offset.y < 0.0) offset.y -= 1;
    else offset.y += 1;
    if(offset.z < 0.0) offset.z -= 1;
    else offset.z += 1;
    llSetPos(offset);
    llSetPos(save);    
}

注意点

複数回の移動コマンドは llSetPrimitiveParamsPRIM_POSITION で連結させることができます。この長所は、1 回の動作ごとでなく、関数の呼び出しごとにだけスクリプトが休止することです。

関連項目

関数

•  llGetLocalPos 装着されているかルートプリムではない場合、プリムのローカル位置を返します。 (そうでなければ、グローバル位置を返します)
•  llGetRootPosition ルートプリムの位置を返します。
•  llGetPos 装着されていてもルートプリムでなくても、プリムのグローバル位置を返します。

特記事項

All Issues

~ Search JIRA for related Issues
   llSetPos() doesn't change position for small vectors when called in attachments on Havok4 unless interacted with

脚注

  1. ^ 明記されていない warpPos バグを利用しない限り

Signature

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