LlSetText/ja
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
警告
- A script calling llSetTextを呼び出したスクリプトはもしフロートテキストが変わったかそうでなくても、llGetTextの関数が無いために知ることが出来ません
- フロートテキストはプリムの設定であってスクリプトではなく、スクリプトが無効化あるいは除去されても、そのままテキストは残ります。
- フロートテキストを除去するには、一度空文字を設定しなければいけません
<lsl> llSetText("", <1.0, 1.0, 1.0>, 1.0); </lsl>
- 空改行はテキストの終端から除去されるので、何文字か縦に空白がほしいのなら、行末に何文字か(スペースのように)入れます。
<lsl> llSetText("Monkeys\n\n\n\n\n", <1.0, 1.0, 1.0>, 1.0);//Bad llSetText("Monkeys\n\n\n\n\n ", <1.0, 1.0, 1.0>, 1.0);//good </lsl>
サンプル
llSeTTextで緑のテキストでオブジェクト名を表示するコードを、標準のコードに含ませる方法の例です。 <lsl> default
{ state_entry() { llSay(0, "Hello, Avatar!"); llSetText(llGetObjectName(), <0.0, 1.0, 0.0>, 1.0); // Display object's name in green } touch_start(integer total_number) { llSay(0, "Touched."); } }
</lsl> フロートテキストの初期状態は一行で表示されるでしょう。しかしながら、フロートテキストは改行"\n"(セクション関連項目内のSplitLineを読みましょう)を用いることで、複数以上に広げることが出来ます。 色の例: <lsl> vector white = <1.0, 1.0, 1.0>; vector red = <1.0, 0.0, 0.0>; vector green = <0.0, 1.0, 0.0>; vector blue = <0.0, 0.0, 1.0>; vector grey = <0.5, 0.5, 0.5>; vector black = <0.0, 0.0, 0.0>; </lsl> <1.0, 1.0, 1.0> は赤、緑、そして青の要素を描写します。 <1.0, 1.0, 1.0>は"白"を意味し、<0.0, 0.0, 0.0>は"黒"を意味します。 <lsl> llSetText("I am on", <1.0, 1.0, 1.0>, 1.0); </lsl> <lsl> llSetText("I am off", <0.0, 0.0, 0.0>, 1.0); </lsl> 1.0はアルファの設定です。1.0は完全な不透明、そして0.0は完全な透過(隠蔽)です。 <lsl> llSetText("alpha", <0.0, 1.0, 0.0>, 0.5); </lsl> 複数行 <lsl> llSetText("I am \n on two lines!", <0.0, 1.0, 0.0>, 1.0);
</lsl>便利なスニペット
このスクリプトをインベントリからドラッグしてオブジェクトにいれると、設定したテキストを削除します。 <lsl> // http://wiki.secondlife.com/wiki/llSetText default {
state_entry() { llSetText("", <0.0, 0.0, 0.0>, 0.0); llRemoveInventory(llGetScriptName()); }
} </lsl>
関連項目
記事
• | LSL での色 | |||
• | 透明度 | |||
• | Examples: SplitLine | – | 文字の幾つかの場所に'改行'のエスケープコードを挿入します | |
• | Useful snippet: llGetObjectPermMask | – | フリーなのか有料なのか、テキストと改行でオブジェクトを分類します |