behavior とイベント
此内容尚不支持你的语言。
behavior ブロックは、VRChat から届くイベントやネットワークイベントを処理する部分をまとめるための宣言です。
ユーザー定義型にメソッドを追加する implementation とは役割が異なります。
behavior
Section titled “behavior”behavior { on start { log("start"); }}behavior の中には、次のものを宣言できます。
function—behavior内で使う関数on— VRChat/Udon のイベント処理receive— Custom Network Event の受信処理
on や receive を behavior の外へ直接書くことはできません。
on は VRChat/Udon から届くイベントを処理します。
behavior { on interact { log("interact"); }}イベントに値が渡される場合は、引数として受け取れます。イベント名や引数は、VRChat/Udon が提供する対応するイベントと一致している必要があります。一致しない場合はコンパイルエラーになります。
イベント処理で状態変数を使わない場合は、state を書く必要はありません。interact も他のイベントと同じ規則です。
状態変数へアクセスするイベント
Section titled “状態変数へアクセスするイベント”イベント処理から状態変数を読み書きする場合は、引数一覧の先頭に state と書きます。state を省略したイベント処理から状態変数を参照すると、コンパイルエラーになります。
state { count: i32 = 0;}
behavior { on interact(state) { state.count += 1; }}この state は VRChat から渡される通常の引数ではありません。そのイベント処理が状態変数を利用することを明示するものです。
behavior 内の関数
Section titled “behavior 内の関数”behavior の中には、イベント処理から使う補助関数も宣言できます。
behavior { function message() -> string { "hello" }
on start { log(message()); }}特定の型に対するメソッドは behavior ではなく implementation に宣言します。
receive
Section titled “receive”VRChat の Custom Network Event を受け取る処理も behavior の中に宣言します。
behavior { receive ping { log("ping"); }}詳しくは ネットワーク を参照してください。