"分岐サンプル作成" Step-by-step チュートリアル
はじめに
StateGoを理解して頂くために一ステップずつ解説するチュートリアルです。
分岐処理を学習します。
プログラム仕様
これから作るプログラムの仕様は以下のとおりです。
ランダムで1から10の数字を一つ選択
1の場合は"1st"
2の場合は"2nd"
3の場合は "3rd"
4以降は 数字+"th"と表現する。
最終的に、 "You are XX." XXの部分に上記で作成した文字列が入る
準備
このチュートリアルは"Hello World" step-by-step チュートリアルからの続きになります。
準備が出来てない場合は、最初の記事から実践して下さい。
乱数の取得
汎用の新規ステートを作成します。
GET_RANDというステート名を与えます。
乱数を保持して、以降のステートで使うため、メンバ変数 "m_val" を定義します。
アイテムテーブルの membersに宣言の式を入力します。
[member]
int m_val = 0;
乱数関数 rand( a, b )を後から定義することとして、[update]に式を入力します。
[update]
m_val = rand(1,10);
分岐の作成
取得した数字で分岐する必要があります。
GET_RANDステートをクリックするとメニューが表示されます。
分岐作成を選択します。
分岐エディタが表示されます。
ダイアログの空欄でクリックしてメニューを表示して、新規の分岐を作成します。
分岐条件は、プログラム式を入力します。
分岐ダイアログをOKで閉じるとステートに分岐ボックスが追加されます。
分岐別の処理
分岐それぞれの処理を追加する。
1stのステートの [update]に、以下のプログラムをに入力します。
var o = new GameObject();
o.AddComponent
o.transform.position = Vector3.down;
("Hello World"の表示と重ならないようにしてあります。)
以下、同様に。
2nd用。
var o = new GameObject();
o.AddComponent
o.transform.position = Vector3.down;
3rd用。
var o = new GameObject();
o.AddComponent
o.transform.position = Vector3.down;
4以上。
var o = new GameObject();
o.AddComponent
o.transform.position = Vector3.down;
矢印を下図のように接続します。
変換
保存と変換ボタンを押し、TestControl.csに出力します。
rand関数の実装
rand関数が実装されていなため、このまま実行はできません。
TestContro.csをエディタで開き、rand関数を実装します。
ただし、StateGoの挿入部の中に実装すると変換時に削除されます。
挿入マーカ―外で実装します。
※組込関数で実装することも可能ですが、変換結果の挿入部以外で定義できることを習得することを目的とします。
int rand(int x, int y)
{
var r = UnityEngine.Random.Range(x,y+1);
return r;
}
実行
UnityのPlayボタンを何度か実行して、正しくプログラムされていることを確認してください。
アーカイブ
まとめ
ここでは以下のことが習得できました。
1. メンバ変数の定義
2. 分岐方法
3. ファイルを変更しての実装方法
以上