HUDをタッチで自分の前1mくらいの位置にオブジェクトがrezされます。
// Rezzer HUD
vector offset=<1,0,0>; // Rezする位置(自分の位置を基準にして相対的な値)
default
{
touch_start(integer total_number)
{ // タッチされたら
key id=llDetectedKey(0); // アバターのキー取得
if (id == llGetOwner()) { // オーナーだったら
string obj=llGetInventoryName(INVENTORY_OBJECT,0); // コンテンツ内の最初のオブジェクト名
if (obj) {
vector pos=llGetPos(); // 現在位置取得
rotation rot=llList2Rot(llGetObjectDetails(id,[OBJECT_ROT]),0); // 向き(回転)を取得
llRezObject(obj,pos+offset*rot,ZERO_VECTOR,ZERO_ROTATION,0); // オフセット値を加えてrez
}
else { // オブジェクトが入ってなかったら
llOwnerSay("Error オブジェクトが入ってないです");
}
}
}
}
ローテーションを含めた位置計算が何かあまり理解できてないんですけど(いつも試行錯誤しながらやってますw)、まあそれ以外はめっちゃ簡単ですね^^;
コンテンツ内にrezしたいオブジェクトを入れてご使用ください。土地のチェックとかはしてないので、オブジェクト作成不能な場所ではスクリプトエラーが出ます。
ところでずっと思ってたんですけど、rezって発音は「レズ」でいいんですよね? でも仮名で書いちゃうとSL知らない人が見たら、誤解とかもあるんじゃないかなって気もしますね?www
0 件のコメント:
コメントを投稿