Unityで簡単なクリックゲーム作成【03:ターゲットの作成】
Unity初心者の方向けに簡単なクリック連打ゲームの作り方を紹介しています。
白い盤面の上を動き回る黒い点をクリックして黒く塗りつぶしていくゲームです。
非常にシンプルなゲームなので初めてゲームを作る人におすすめします。
PCのみとなりますが、こちらでプレイ可能です。
全部で5つの記事に別れています。
- 盤面を作成
- 動く黒い点を作る
- 【今回】ターゲットの作成
- クリックの処理
- UIとGameManager
前回まででランダムで動く黒い点を作成するところまで出来ました。
今回は3回目です。
ターゲットマークを作って行きたいと思います。
ターゲットマークにはこの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内に制限したいと思います。
処理の流れを整理するとこのような感じになるでしょうか。
- Target移動範囲用の変数を作る
- WhiteChipの角(最大)のX,Y座標取得
- Targetの移動範囲用変数にわたす
- わたされた座標を元に移動範囲を制限する
これに沿って実装していきたいと思います。
まずTargetControllerに変数を2つ用意します。
そしてMapControllerにはTargetControllerをアタッチするためにSerializeFieldを用意します。
【TargetController】
【MapController】
続いてHierarchyでMapを選択しInspectorにTargetをアタッチします。
このようになりました。
MapControllerからTargetControllerに座標を渡して行きます。
修正するのはMapControllerのみとなります。
Start関数内に追記します。
これでMapControllerからTargetControllerのxLimit,yLimitに値を渡すことが出来ました。
最後にこの値を元にTargetの移動制限処理を記述していきます。
これでTargetは範囲内のみの移動となりました。
移動範囲の制限に関しては過去に記事にしていますので良かったら参考にしてみてください。
次回は動くターゲットと黒い点が重なった時に左クリックをしたら白い部分が黒く塗られるという処理を実装していきたいと思います。
ここまでの記事はgithubにアップしてありますので、よければ参考にしてみてください。
関連記事
Unityで簡単なクリックゲーム作成【最終回:UIとGameManager】
Unity初心者の方向けに簡単なクリック連打ゲームの作り方を紹介。最終回はUIやゲーム全体の進行などを実装していきます。
Unityで簡単なクリックゲーム作成【04:クリックの処理】
このゲームの肝となる黒い点をクリックする処理を実装していきます。
Unityで簡単なクリックゲーム作成【02:動く黒い点を作る】
Unity初心者の方向けに簡単なクリック連打ゲームの作り方を紹介しています。ランダムで動く黒い点を作ってみます。
Unityで簡単なクリックゲーム作成【01:盤面を作成】
Unity初心者の方に向けて白い盤面上をランダムに動く黒い点をクリックして黒に塗りつぶしていくという簡単なゲームの作り方を紹介します。この記事では白い盤面を作っていきます。
最後までご覧頂いてありがとうございました。