Unityで簡単なクリックゲーム作成【02:動く黒い点を作る】

Unity初心者の方向けに簡単なクリック連打ゲームの作り方を紹介しています。
白い盤面の上を動き回る黒い点をクリックして黒く塗りつぶしていくゲームです。
非常にシンプルなゲームなので初めてゲームを作る人におすすめします。

このゲームの仕組みを使って作ったゲームです。
PCのみとなりますが、こちらでプレイ可能です。

全部で5つの記事に別れています。

前回白い盤面を作成するところまで出来ました。

今回は盤面をランダムに動き回る黒い点を作っていきたいと思います。

動く点のプレファブを作る

盤面の上を動き回る黒い点を作ります。
素材は前回分割したmapTileの黒い四角を使います。
Spritesフォルダ内のmapTileから黒い点を選択しHierarchy上のMapの子要素に設定します。
名前はBlackChipとしておきます

BlackChipにコンポーネントを追加していきます。
具体的にはBoxCollider2DとRigidbody2Dです。
今回重力は関係無いのでRigidBody2DのGravity Scaleは0にしておきます。
タグも付けてあげましょう。
BlackChipとしました。

続いてスクリプトを追加します。
新たにC#スクリプトを作成しましょう。
名前はBlackChipControllerとします。
作成したらBlackChipに追加します。
最終的にBlackChipのInspectorはこのようになりました。


コンポーネントを追加したらWhiteChip同様、プレファブ化し、Hierarchy上からは削除しておきます。

MapControllerから生成

続いて前回作成したMapControllerを修正していきます。
MapControllerのStart関数内でBlackChipを生成するように直していきます。
またMapControllerでBlackChipが動く処理を呼び出すためBlackChipControllerも取得しておきます。

MapControllerを修正したらMapのInspectorからBlackChipのPrefabをアタッチしておきましょう。

これで実行してみると小さくて見えづらいですが真ん中に黒い点が表示されました。

ランダムに目的地を設定する

ではこの黒い点が動く目的地を設定してみたいと思います。
やり方は様々考えられますが、今回は敷き詰められたWhiteChipをランダムで指定しそれを目的地にしたいと思います。
流れとしてはこのような感じでしょうか。

  1. whiteChipを格納しておくListを用意
  2. whiteChip生成時にListに格納する
  3. List内のWhiteChipをランダムで選ぶ
  4. 選ばれたWhiteChipの位置を目的地にする

この流れに沿ってMapControllerを修正していきます。

このように敷き詰められたwhiteChipの中から一つ抽出し目的地を設定してみました。
今回横縦80個で並んでますので合計6,400個のwhiteChipがリストに格納されています。
Listは0番目から始まるので0から6399までのいずれかの値がidxに返ってきます。
ちなみにRandom.Range()はint型の場合、最大値に指定した数は含まれないので6,400までではなく6399までとなります。
実行して確認してみます。

このように目的地の座標をランダムで取得出来ました。

目的地に向かって動く

続いてBlackChipを目的地まで動かしてみたいと思います。
BlackChipControllerに処理を記述していきましょう。
流れとしてはこのような関数があれば良さそうな気がします。
Moveという関数を作ってみたいと思います。

  1. 引数で目的地の座標を受け取る
  2. ターゲットとなるポジション用変数に代入する
  3. コルーチンで目的地まで動かす

実際に記述してみるとこのような感じでしょうか。

関連記事

このMove関数をMapController側で呼んであげれば良いと思います。
MapControllerを修正してみましょう。

目的地をわかりやすくするため確認用に赤色にしています。
実際に動かしてみるとこんな感じです。

小さくてわかりにくいかもしれませんが、黒い点が赤い点(目的地)に向かって動いています。

目的地の再設定

目的地に黒い点がたどり着いたら次の目的地を設定してあげましょう。
流れはこのような感じになります。

  1. MapControllerのUpdate関数で移動してるかどうか判別する
  2. 移動中でなければ(目的地についていたら)
  3. 再度BlackChipControllerのMove関数を呼び出す

BlackChipControllerのisMovingを使って実装出来ると思います。
処理自体は最初にBlackChipを動かした流れと全く同じです。
MapControllerはこのようになりました。

実行結果はこのような感じです。

いかがでしょうか。
これで不規則に動く黒い点が出来ました。
次の記事ではこの黒い点をマウスを使って撃つ処理を実装してみたいと思います。

ここまでの記事はgithubにアップしてありますので、よければ参考にしてみてください。

Unityの学習方法

Unityを始めプログラミング全般について皆さんは普段どのようにして勉強してますか?

ネットで検索したり、書籍を読んだり、オンラインスクールなど様々な方法があります。

逆にたくさん方法があり過ぎで、どれをやればいいかわからないという方にオススメの方法をいくつか紹介します。

kindle unlimited

これはAmazonが提供する電子書籍読み放題のサービスです。

月額980円で約200万冊以上が読み放題でとてもお得です。

また30日無料体験もできるのが魅力です。

当然Unityに関する書籍もたくさん揃っています。

またC#関連の書籍や、プログラミングのものも多数あります。

プログラミング関連の書籍は値段が結構しますので、それらが無料で読めるのはかなりお得なサービスです。

30日無料体験もありますので気に入らなければその期間に解約すれば料金は発生しません

オンラインで学習

質問が出来るおすすめのUnity学習方法ページです。

・Unityでゲーム作りたいけど何から初めたら良いかわからない。

・独学でゲームを完成させられるか不安。

・ゲーム開発でわからないことを一人で解消できない。

・入門書を一通りやってみたが次に何していいかわからない。

こんな人におすすめしたい内容になっています。

最後までご覧頂いてありがとうございました。

感想・コメントをどうぞ

購読
通知する
guest
0 コメント
Inline Feedbacks
View all comments