【Unity】Unityで3D野球盤をつくろう日記 18日目:守備の選手(敵?)をランダムに動かす(Random.Rangeを使って動く方向と座標変化量を与える)

投稿日:2017年7月3日
最終更新日:2019年1月19日

(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/

この前は守備の選手を8人配置した。左右に動かすようにしたんだけど、動き出すタイミングや方向がみんな同じだから、なんか不気味な感じ(笑)ということで、今日は動く方向とスピードの初期値をランダムに与えることで、それぞれの選手が不均一に動くようにしたいと思う。前回変更を加えたスクリプト、MovePlayer.csにさらに変更を加えた。

https://gist.github.com/WakkyFree/2a48f26d631252737ca72d5dbcdea38e/b36de7b35c03689f51f9260d0ade45cd5f098416

変更点としては、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

スクリプトを保存して実行したところ、各選手がバラバラに動くようになった(画像だとわかりづらいけど)

良い感じにはなったんだけど、それぞれの選手がバラバラに動くため壁にボールを当てづらく、少し難易度が上がってしまった笑。ここら辺は投手だけボールがすり抜けるとか、ゲームバランスを考えたいと思う。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください