bigbanner

Unity マルチプレイオンラインゲーム開発

Unityオンラインゲーム作成【Chapter11】カーソルの実装

投稿日:

今回の記事ではカーソルを実装します。

カーソルとは

どのようなものかはまず以下の画像を見てください。

ユニティちゃんの横に水色のオブジェクトがマウスの先にあるのが分かりますね。

このようにゲーム内でマウスに追従するポインタの役割をするオブジェクトがカーソルです。

そして今回はそのカーソルを利用して、前回の戦闘の導入ではキャラクターの正面にしか飛ばせなかった攻撃を、カーソルに向かって攻撃を飛ばせるようにしましょう!

カーソルの導入手順

カーソルの導入手順は以下の通りです。

  1. MouseCursorオブジェクトの作成
  2. レイヤー"Player"と"Attack"を追加し、プレイヤープレハブと攻撃の球プレハブを設定
  3. CursorManageScriptを作成し、MouseCursorオブジェクトにセット
  4. CharacterControlScriptを変更

MouseCursorオブジェクトのInspectorビュー

カーソルは見た目上分かりやすいように水色のCursorMatというmatファイルを作成し、Materialsに適用しています。

"Player"、"Attack"レイヤーの追加と設定

以下の画像のように新規のUser Layerを追加します。

ユニティちゃんのPrefabのLayerを"Player"に、攻撃の球オブジェクトのLayerを"Attack"に設定します。

CursorManageScript.csのソースコード

カメラからマウスカーソルがある方向にRayを飛ばし、Rayが当たった場所にカーソルを動かすようにしています。

普通のゲームではキャラクターや攻撃にカーソルは乗らないので、layerMaskでUser Layer 8の"Player"レイヤーとUser Layer 9の”Attack”レイヤーのオブジェクトにはRayが当たらないようにしています。

なのでプレイヤーと攻撃のオブジェクトのレイヤーが違う番号であればlayerMaskの数字を書き換えてください。

CharacterControlScript.csの変更後ソースコード

CharacterControlScript.cs自体が長くなってきてややこしく思うかもしれませんが、今回追加したスクリプトはマークされている6行のみです。

カーソルのTransformを常に取得しておき、攻撃時にカーソルのPositionの方向をキャラクターが向くようにしています。

実際に動かしてみましょう!

カーソルのオブジェクトがマウスに追従し、攻撃はカーソル方向に発射していることが分かります。

今までは攻撃の方向を操作するのが難しかったですが、簡単になりました!

次回予告!!

次回は色々なUIの設置について書きたいと思います。

お楽しみに!!

 

rectangle_l

rectangle_l

-Unity, マルチプレイオンラインゲーム開発

Copyright© Uniblo-ゆにブロ- , 2018 All Rights Reserved.