2009年11月03日

llCollisionFilterで

数種類ほどのボールをプリムにぶつけて接触判定したいのですが、
string nameのところに一つしか指定できません。
ここにリストに格納した名前のものが、どれが来ても検出できるようにできませんか?
後の処理はすべて同じです。
名前だけ変えて複数のスクリプトをコンテンツに入れると期待通りの動作をしますが、処理がすべて同じなので一つにまとめることができないかと考えています。
それ以外の物がぶつかって反応しては困るのです。

llCollisionFilter("ball1", "NULL_KEY" , TRUE);

この下線部(string name)に任意の複数オブジェクトのどれでも判定できるようにしたい。


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by Namidame  at 15:57 │Comments(2)スクリプト関連

この記事へのコメント
フィルタは排他的なので発想を変えて全てを処理して何が当たったかで判断するといいと思います。

list hit_llist = ["ball1","ball2","ball3"];

default{

collision_start(integer num_detected){
integer i;
for(i=0;i<num_detected;++i){
if(llListFindList(hit_llist,[llDetectedName(i)]) != -1){
llOwnerSay("あたり!");
}
}
}
}
Posted by Two-Hand at 2009年11月03日 16:41
さっそくありがとうございます!
あー、こんな発想するんですねー!
何時間も探したけどどこにも複数検知は書いてなかったので、できないものは違う考え方でやらないといけないってことですね。
助かりました。とても勉強になりました。
Posted by Namidame at 2009年11月03日 17:45
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。