(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/)
この前は守備の選手を8人配置した。左右に動かすようにしたんだけど、動き出すタイミングや方向がみんな同じだから、なんか不気味な感じ(笑)ということで、今日は動く方向とスピードの初期値をランダムに与えることで、それぞれの選手が不均一に動くようにしたいと思う。前回変更を加えたスクリプト、MovePlayer.csにさらに変更を加えた。
変更点としては、Startの中でRandom.Rangeクラスを使っている。
d_positive = Random.Range(0,2) == 0;
x = Random.Range(0.1f,0.2f);
を追加して、方向と移動時のx値加算量を乱数で発生させ、選手が動く位置とスピードをランダムで与える。この値はスクリプトを付加している選手ごとに別々の値が発生するので、それぞれの選手は別々の動作をする。d_positiveはbooleanなのでtrueかfalseを入れる必要があるため、int型で0、1を発生させて、0と等しいかどうかを見て、trueかfalseの論理値に型変換をしている。Random.Rangeについては以下を参照。
https://docs.unity3d.com/ja/540/ScriptReference/Random.Range.html
スクリプトを保存して実行したところ、各選手がバラバラに動くようになった(画像だとわかりづらいけど)
良い感じにはなったんだけど、それぞれの選手がバラバラに動くため壁にボールを当てづらく、少し難易度が上がってしまった笑。ここら辺は投手だけボールがすり抜けるとか、ゲームバランスを考えたいと思う。