その処理部分で何ができるかも、少し考えてみます。
ルートから子を操作する関数は今のところ以下の通りです。
llSetLinkAlpha
llSetLinkColor
llSetLinkTexture
llSetLinkPrimitiveParams
※漏れてたら教えてください
まあ、llSetLinkPrimitiveParamsがあるので
かなりのことができます。
ただし、Delayも考えると、単純にllSetLinkPrimitiveParamsだけとはなりませんが。
※蛇足ですが、jiraにはllSetLinkTextを求める声もでています。
"llSetLinkText or a FLOATING_TEXT option for llSetLinkPrimitiveParams"
→ http://jira.secondlife.com/browse/SVC-2367
でも、お気づきの通り、ルートから子primの情報を取得するための
Get系がありません。これはセキュリティ等が考慮されているのかもしれません。
むりやり、なにか情報をとろうとするとllGetObjectDetailsなんかも
有効なケースもあります。
default
{
state_entry()
{
integer i_lnkno = llGetNumberOfPrims();
list l_detail = [];
for (;i_lnkno>=2;--i_lnkno){
l_detail = llGetObjectDetails(llGetLinkKey(i_lnkno)
,[OBJECT_NAME
,OBJECT_DESC
,OBJECT_POS
,OBJECT_ROT
,OBJECT_VELOCITY
,OBJECT_OWNER
,OBJECT_GROUP
,OBJECT_CREATOR]);
llOwnerSay((string)i_lnkno+":"+llList2CSV(l_detail));
}
}
}
と、まあこんな感じで、あまり有効なものはとれません。
※というか、この部分は半分ネタとしてみてもらってもいいです
こんな時はどうするかってことですが、
初期化時に、ルートから各primの設定を行い
実行中にその状態を更新していくことが考えられます。
処理:ボタンAを押すたびにボタンの色が赤と黒に交互に変わる
【初期化】
ボタンAを黒くする
→管理用変数に黒をセット
【実行】
ボタンAが押される
→管理用変数が黒なら赤くする
→管理用変数を赤に更新
→管理用変数が赤なら黒くする
→管理用変数を黒に更新
ちょっとめんどくさそうですが
子prim内で処理する場合でも、llGetColorなどで
いまの色を取得して処理するのではなく
なんらかのフラグで処理しているはずです。
あまり変わりません。
こんなふうにルートから子primの操作も
制限があるとはいえ、工夫次第で可能ですよね。
4に続く
0 コメント:
コメントを投稿