ダイアログ
テクスチャーを変えてみる(ダイアログ)
テクスチャーを変えてみる(ダイアログ)
ダイアログ関数を使ってオブジェクトのテクスチャーを変えてみましょう。
integer DIALOG_CH = 1024;
default
{
state_entry()
{
llListen(DIALOG_CH,"",NULL_KEY,"");
}
touch_start(integer num)
{
key avatar = llDetectedKey(0);
llDialog(avatar, "Select image", ["sample001", "sample002",
"sample003";], DIALOG_CH);
}
listen(integer chan, string name, key id, string mes)
{
llSay(0, "Dialog Message=" + mes);
if ( mes == "sample001") llSetTexture("テクスチャーの名前", ALL_SIDES);
else if (mes == "sample002") llSetTexture("テクスチャーの名前", ALL_SIDES);
else if (mes == "sample003") llSetTexture("テクスチャーの名前", ALL_SIDES);
}
}
解説
スクリプトを使ってテクスチャーを切り替えます。今回はダイアログという関数を使っています。
分かりやすくするためにsampleという文字を使っています。スクリプトと一緒に画像もオブジェクトの中に入れて下さい。スクリプトだけでは動きません。
llDialog・・・ダイアログを表示するための関数です。
llSetTexture・・・テクスチャーを表示させるための関数です
この切り替えのメリットは、ダイアログ関数で表示しているので好きなテクスチャーをいつでも切り替え、表示が可能です。確認はしていませんが一つのオブジェクトに大量のテクスチャーを入れることも出来ます。masaは9つまでいれています。
デメリットは、テクスチャーを入れるたびにスクリプトを追加しなければいけないというくらいです。
日本語版のLSLのサンプルをダウンロードできるようにしたので是非使って下さい。日本語版は基本的にUTF-8形式なので当サイトの日本語変換(UTF-8)のページで日本語を変換してもらって使っていただくといいと思います。
ダイアログを表示してみよう