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開発おすすめPC

NEXTGEAR

NEXTGERA
特徴:国内生産のマウス品質で、コスパ重視のゲーミングPC
低価格ながら、高性能・優れたデザイン性を兼ね備えており、ゲームを楽しむすべての方におすすめです。
価格:10万円台から
NEXTGEAR 詳細

関連記事

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

Unity3D

簡単にできる3Dゲーム

アバター制作から3Dゲームの完成まで学べる!