自分でゲームを作った! 早速、友人に遊んでもらおう!
と思っても、 今の時代は、スマホしか日常的には使わない人が多く、
わざわざパソコンを出してきて、「起動→遊ぶ」までに至ってくれないことはありませんか?
それ以降も、パソコンでは、気が向いたから、遊ぼうとはなりませんね?
なので、できるだけ多くの人に遊んでもらうためには、
スマホに対応したゲームを作る必要があります。
そこで、本記事では、
スマホで操作可能なジョイスティックの実装方法
ジョイスティックによる3Dオブジェクトや3Dキャラクターを動かす方法
を紹介したいと思います。
本記事を最後まで読むと、これができます↓
開発画面(PC)なので、ボタンとスティックを同時に操れてませんが、 スマホ上なら操れます!
1.アセット”Joystick Pack”のインストール
さまざまなジョイスティックのツールアセットが、
Unity Asset Storeには販売されています。
しかし、個人的に、一番シンプルで、初心者が扱いやすいのは、
「Joystick Pack」(無料)であると考えます。
※誰でも速攻でゲームを作れるアセットの、「StandardAsset」にもジョイスティック素材は含まれていますが、とても操作性が悪いかった・・・。
なので、アセットストアよりダウンロードし、 適用したいプロジェクトにインポートします。
いつの間にか、Unity Editorに「Package Manager」からダウンロードおよびインポートできるようになっていました! それほどスタンダードなアセットなのですね^^
アセットストアからだと「Open Unity」をクリックすれば、 Editorをインポートするウィンドウに行けます。
2."JoyStick Pack”でオブジェクトを動かす
インポートした「Joystick Pack」の「Prefabs」の中に、 シーンにドラッグ&ドロップして、即使えるジョイスティックが入っています。
4種類ありますが、簡単に特徴を述べると、
・「Fixed Joystick」は、あらかじめ配置したところで操作できるジョイスティック
・「Floating Joystick」は、リアルタイムで触れたところにジョイスティックが配置され、そこで操作できるジョイスティック
・「Dynamic Joystick」は、リアルタイムで触れたところにジョイスティックが現れ、なおかつ配置を移動させることのできるジョイスティック いずれも三者三様です。
4つ目の「Variable Joystick」は、InspectorからJoystickのタイプを上記の3つから変えられるようになっています。
さて、 図のように、Canvasをシーンに追加の上、Joystickを配下に置きます。
「PlayableCube」とでも名付けた赤いCubeを
Fixed Joystickで動かす場合は、次のスクリプトをアタッチします。
public class Control : MonoBehaviour { public Joystick joystick; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { // float x = Input.GetAxis("Horizontal"); //矢印キー(←→)で操作する場合 // float z = Input.GetAxis("Vertical"); //矢印キー(↑↓)で操作する場合 float x = joystick.Horizontal; float z = joystick.Vertical; transform.position += new Vector3(x*0.1f, 0, z*0.1f); } }
キーボードによる矢印キーで操作する場合は、コメントアウト(//)したように書きます。
その部分を、joystick.○○に変えるだけです。
今回は3次元でなので、xとzの入力とし、y軸方向は入力されないようにしました。
そのままでは、とても早く動くので、0.1fをかけています。
アタッチしたら、Inspectorのjoystickという項目に、Fixed Joystickオブジェクトをドラッグ&ドロップで紐付けてください。
CubeにRigidbodyを与えると、他オブジェクトと接触するようになります。
CubeをJoystickで動かす様子がこちら↓
3.3Dのキャラクターモデルを動かす
Cubeを動かしたときと同じ要領で、3Dキャラクターもジョイスティックで操作できます。
しかし、ゼロから、コードを書くのは大変・・・・ですよね?
そんなときは、既存のスクリプトを基に、ジョイスティックが使えるように修正するのが一番簡単です。
以降は、ジョイスティックで3Dキャラクターを動かす方法 & スクリプトを紹介します。
おまけ:ボタンによるジャンプも
これから紹介する方法は、上の動画のように
ジョイスティックの入力方向にキャラクターを動かす方法(レア)です。
(カメラ固定のゲームにおすすめです)
しかも、スクリプトを1つ用意すれば、走るモーションも即実装できます!