Unityでマウス座標にキャラクターをついてこさせる方法

マウスカーソルにキャラクターがくっついて来るような挙動をUnityで実装していきたいと思います。
マウス操作のみのシンプルなゲーム等で使えそうな技になると思います。
私がこの技を使って作ったゲームがこちらになります。

このゲームはターゲットをマウスで動かし黒い点を撃つというシンプルなゲームです。
完全にマウスのみで遊べるゲームとなっています。

ではいつものようにUnityの新規2Dプロジェクトを作成し作業をしていきます。
画面サイズは960*540です。

ご覧の通り、今回やることはとてもシンプルです。

移動するキャラクターの作成

まずキャラクターとなるゲームオブジェクトをHierarchy上に作成します。
画像でも良いですし、画像がない場合はとりあえず2DオブジェクトのSquare等でも構いません。
今回その名前をTargetとしました。
ヒエラルキー

スクリプトでキャラクター座標をマウスの座標にする

次にマウス座標とキャラクター座標を紐付けるC#スクリプトを作成します。
Targetというファイル名にしました。
作成したらゲームオブジェクトTargetにアタッチします。

ではコードを書いていきましょう。
まず座標を保持しておくVector3型の変数を2つ用意します。
その後Update関数内でマウス座標を取得しワールド座標に変換。
最後に自身のpositionにワールド座標を代入します。

具体的にはこのようなコードになりました。

たったこれだけです。
これでマウスの位置にキャラクターがついてきます。

Camera.mainのScreenToWorldPoint関数でスクリーン上のマウスのx,yの座標を引数に取っています。
スクリーン上のマウスの座標は型はVector3ですが、z軸を持っていない2次元ですのでz軸の値を指定しておく必要があります。
これでマウスカーソルについてくるキャラクターの処理が出来上がりました。

左クリックした座標にキャラクターを動かす

これを応用してマウスの左クリックした座標に向かってキャラクターが動くように改造してみます。
ソースコードはこのようになりました。

やっていることはUpdate関数でマウスの左クリックの入力を受け取ったらマウス座標からワールド座標を求め、コルーチンを使って移動させています。

移動させているコルーチンの中身に関してはこちらの記事の内容とほぼ同じです。

実行してみるとこんな感じでキャラクターが動いてくれます。
クリックした座標にキャラクターが動く

以上マウスとキャラクターの移動に関しての処理でした。

関連記事

Unityの学習方法

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

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

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

kindle unlimited

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

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

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

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

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

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

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

オンラインで学習

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

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

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

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

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

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

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

感想・コメントをどうぞ

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

関連記事