関数っていうのはLSLで元から用意されてる物と
ユーザが自分で作れる物がある
関数
まずはLSLに元からある関数の使い方の説明
関数を使うことで
- ある動作を一つにまとめる ←とっても大事
- ある値を参照する
ってことができるんだ
関数名1(引数);
そして関数名の後に続くこの()
これはこの関数1にこの引数を使って処理をしてくれ!ってこと
ちなみに・・ |
LSLで始めから用意されてる関数は |
全て関数名の先頭にllって書いてある |
わかりやすいな |
たとえばllSetPos関数を例にしてみると
llSetPos(<5,10,15>);
llSetPos関数っていうのは引数の値にプリムを移動させるという使い方
この関数を動かすことで動かしたプリムは<5,10,15>の座標に移動させられる
引数は関数によって複数要求されることがあるんだけど
そういった場合は幾つかの引数を,(カンマ)で区切ってやる必要がある
関数名1(引数1,引数2);
また、この引数ってのは関数によって使える型が決まってる
今度はllOwnerSayを例にして何の型を使えって言われてるのか調べてみよう
llOwnerSay
上のほうに
llOwnerSay(string msg)
って書いてあるのがわかると思う
どういうことかっていうと
llOwnerSayに必要な引数はstring型1つだけ
って意味なので引数には文字列型を使わないといけないってこと
llOwnerSay("aiueo");
llOwnerSayは自身に引数を表示するって意味なので
こうすることで自分の画面にaiueoと表示される
ある値を参照する関数っていうのは
関数を実行することによって値を参照することができる
vector v = llGetPos();
llGetPos関数は実行することで今ある座標を参照することができる
参照された値は代入演算子で別の変数に代入する必要がある
こうやって色々な関数を使って
現在時刻を調べたり風の向きを調べたりすることができるんだ
ユーザ関数
ユーザ関数っていうのは
今まで説明してた関数とは逆で
関数を呼び出した時の処理を自分で作ってしまおうという事
myFunction(5);
こんな感じで自分で作ったmyFunctionという関数に5という引数を付け加えて実行することができる
だけど実行した時に起こす処理を書く必要があるんだ
書く場所はステートの外側&ステートより前に書かないといけない
書き方はこんな感じ
返す型 関数名(受け取る引数){
処理
return 返す値;
}
返す型、返す値ってのは
イベント内
myFunction(5);
を実行した時にかえって来る型と値の事
ここに書いた型と値が帰って来るので
integer myFunction(integer n){
処理
return 10;
}
こんなかんじで書いた場合は型をinteger型にしてるので
イベント内
integer a = myFunction(5);
という感じで実行すれば実行した場所に整数型の値を返すことができる
受け取る引数っていうのは
イベント内
myFunction(5);
これの場合は整数型の5という引数を送ってるので
integer myFunction(integer n){
処理
return 10;
}
関数の中の変数nで5という値を取得することができる
このnは関数の中で使うことができる
integer myFunction(integer n){
integer m = n * 10;
return m;
}
こういう関数を用意しておいて
イベント内
integer new = myFunction(5);
こうやって実行させると
newの中には5*10の値が入ってることになる
関数の中で処理を実行させたい場合は
この関数の中に用意された関数を書いてやればおk
integer myFunction(){
llOwnerSay("run function");
return 0;
}
こういう関数を用意しておいて(引数は必要ないので適当に0を返しておく)
イベント内
myFunction();
こう実行させると自身の画面にrun functionと表示される
最終更新:2010年09月11日 03:36