【初心者向けチュートリアル】Boltを使用してUnityで簡単なゲームを作成する-8

こちらの記事では**アイテムのランダム生成**を行います。

#アイテムのランダム生成
前回のチュートリアルでアイテムの作成が一通り完了したので、次はゲーム内でのランダム生成をやっていきましょう。

Hierarchy内で右クリック>CreateEmptyで新しいオブジェクトを作成>名前を「ItemGenerator」に変更>同名のグラフをAddComponentしてください。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/cfb67d64-e1d3-6ade-aa4e-90c23544f8ff.png)
Inspectorがこんな感じになったらOKです。Transform各種の値は何でも構いません。

まずはn秒ごとにStrawberryがランダム位置に生成されるようにしてみます。
ItemGenerator内で以下の変数を作成をしてください。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/f22053a0-8386-822e-16f1-d1983da0119f.png)
Countは経過した秒数を数えるためのもので、dropSpanは上記したnにあたる変数です。今回は1秒ごとにアイテムを生成することにして、Valueには1を入力しています。

次に秒数を数えます。以下のようにノーツを作成してください。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/e4864180-2de6-fae7-c591-cd3526a30453.png)
Fomulaノーツは入力された値が条件に対してTrueがFalseかを返すノーツです。
Floatノーツは簡単に言えば任意の小数を格納できるノーツです。(今回は数値は0にしてください)
①Updateが呼ばれる度にcountにDeltaTimeの値を足して時間を計測
②Fomulaノーツでcountの値を監視して分岐
③n秒経ったらcountを0に戻す
という流れになります。

次にアイテムを生成の部分です。
countを0にしたところから以下のようにノーツを繋いでください。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/b3803eaf-11d1-2740-7d51-cdf447389475.png)
Game Object Literalノーツは指定したオブジェクトを取得します。
Randam:Range(Min,Max)(上に表示されるものを選んでください)ノーツはMin~Maxの間でランダムな値を生成します。
Quaternion Literalノーツははオブジェクトの回転角を指定できます。
Component:Instantiate(Original,Position,Rotation)ノーツは指定したオブジェクトを任意のPositionとRotationで生成します。
①生成したいオブジェクトを取得
②画面内(-8~8)に収まるように生成されたX座標、上空から落下させるための固定値7を入力したY座標、初期値を入力したQuaternion(回転角)を生成するオブジェクトに設定
③生成
という流れになります。

ここでいったん再生してみましょう。
![ダウンロード.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/3c98a2df-e66b-9124-4b32-219aafd3c87e.gif)
1秒ごとにStrawberryが降ってくるようになりましたね。
次は落ちてくるアイテムの種類もランダムにしてみましょう。

まず以下のように、ランダム生成するオブジェクトを格納する変数を作成します。
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education _DX11_ 2020_07_13 13_56_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/55220c3a-cba5-fd38-b77d-bdb72539a1ab.png)
次に、以下のようにSetVariableからノーツを繋ぎましょう。
ちょっと長いですが頑張ってください！
![BoltGame - Game - PC, Mac & Linux Standalone - Unity 2019.3.1f1 Education _DX11_ 2020_07_13 14_20_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/363e7a4d-ea92-4679-13d1-574a5995ba60.png)
Switch On Integer(in Control)ノーツは入力された値に対して処理を分岐させるノーツです。
初期のままですと以下のように項目が一個しかないと思うので、
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/581ac726-e883-9f23-e591-3b5f59aec388.png)
Switch On Integer(in Control)ノーツをクリックしたままGraphInspectorタブを開いて、項目を増やしましょう。
![無題3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/d55470b0-7953-bccb-2201-adce3cf3fc8c.png)
赤線で囲った部分をクリックするとどんどん新しい項目が増えます。
画像のように3つに増やして、上から1,2,3と入力してください。

ノーツの設定が出来たところで、改めて先の全体図を見てみましょう。このグラフは
①n秒経ったら1~3の値をランダムに生成し、出た値によって処理を分岐
②生成された値が1であればStrawberryを、2であればOrangeを、3であればMeronをdropItem変数に格納
③dropItemに格納されたオブジェクトを生成
という流れになります。

では実際に再生してみます。
![ダウンロード.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654796/cbe18323-3719-77ee-3cf6-fde8b09be5ea.gif)
ちゃんとランダムドロップするようになりましたね！

これでアイテムのランダム生成は完了です。

今回のチュートリアルはここまでです。お疲れさまでした！
次回は**制限時間の設定～シーンの遷移**までをやっていきます。
[【初心者向けチュートリアル】Boltを使用してUnityで簡単なゲームを作成する-9](https://qiita.com/mma/private/0c20c4e03f453f677119)