Unityで簡単なクリックゲーム作成【03:ターゲットの作成】

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

PCのみとなりますが、こちらでプレイ可能です。

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

前回まででランダムで動く黒い点を作成するところまで出来ました。

今回は3回目です。
ターゲットマークを作って行きたいと思います。
ターゲットマークにはこの2つの機能を実装したいと思います。

  1. マウスカーソルに追従して動く
  2. 左クリックで黒い点を撃つ

今回は1番目のマウスカーソルに追従する部分を実装してみたいと思います。

今回このような感じになると思います。
では早速続きをやっていきましょう。

ターゲットオブジェクトの作成

まずターゲットの画像をHierarchyにドラッグしてゲームオブジェクトにします。
Spritesフォルダ内のTargetがそれに当たりますので早速配置します。
ゲームビューで見てみると非常に小さいです。

これだと黒い点と見分けがつかないので大きくしてあげましょう。
Sprites内のTargetを選択しInspectorのPixels Per Unitの値を100から24にしてApplyしましょう。
先程よりも見やすくなったと思います。
Pixels Per Unitはシーンビューのマス目の中に何個のピクセルで表示するかという設定になります。
Targetの素材自体は縦横16ピクセルで作られてますのでPixels Per Unitの値を16にするとシーンビューのマス目と同じ大きさになります。
それだと大きすぎるので24にして若干小さくしています。

【Pixels Per Unitが100の場合】

【Pixels Per Unitが16の場合】

【Pixels Per Unitが24の場合】

Pixels Per Unitに関してはこちらのブログで非常に解りやすく説明してくれています。

Targetのサイズの調整が済んだので必要なコンポーネントを追加していきましょう。
今回必要なのはCircleCollider2DとTargetを動かすためのC#スクリプトです。
CircleCollider2DはisTriggerにチェックを入れ、スクリプトに関してはScriptsフォルダ内にTargetControllerというC#スクリプトを新たに作成し追加します。
TargetのInspectorはこのようになりました。

ターゲットマークをマウスの位置に合わせて動かす

続いてマウスの動きに合わせてTargetを動かしていきましょう。
TargetControllerを編集していきます。
やることは以前このブログでも紹介したマウス座標にキャラクターをついてこさせる記事とほとんど同じです。
このようなコードになりました。

実際に起動するとTargetがついてくるのがわかります。

しかしこれだとマウスカーソルが画面外に出た時にTargetも出てしまい見えなくなってしまいます。
次はこれを修正していきたいと思います。

移動範囲の設定

今回のゲームでTargetが移動出来る範囲はMapの子要素で敷き詰められたWhiteChip内に制限したいと思います。
処理の流れを整理するとこのような感じになるでしょうか。

  1. Target移動範囲用の変数を作る
  2. WhiteChipの角(最大)のX,Y座標取得
  3. Targetの移動範囲用変数にわたす
  4. わたされた座標を元に移動範囲を制限する

これに沿って実装していきたいと思います。
まずTargetControllerに変数を2つ用意します。
そしてMapControllerにはTargetControllerをアタッチするためにSerializeFieldを用意します。

【TargetController】

【MapController】

続いてHierarchyでMapを選択しInspectorにTargetをアタッチします。
このようになりました。

MapControllerからTargetControllerに座標を渡して行きます。
修正するのはMapControllerのみとなります。
Start関数内に追記します。

これでMapControllerからTargetControllerのxLimit,yLimitに値を渡すことが出来ました。
最後にこの値を元にTargetの移動制限処理を記述していきます。

これでTargetは範囲内のみの移動となりました。

移動範囲の制限に関しては過去に記事にしていますので良かったら参考にしてみてください。

次回は動くターゲットと黒い点が重なった時に左クリックをしたら白い部分が黒く塗られるという処理を実装していきたいと思います。

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

Unityの学習方法

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

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

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

kindle unlimited

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

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

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

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

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

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

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

オンラインで学習

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

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

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

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

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

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

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

感想・コメントをどうぞ

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