Unity5でスマートフォンゲーム向けにバーチャルパッドを実装する方法を紹介します。
#目標
今回実装するバーチャルパッドは下図のようなものです。
画像左下のパッドへの入力値を表示するところまでを行います。
#手順
- CrossPlatformInputをインポートする
- Prefabを設置する
- パッドからの入力を受け取るスクリプトを記述する
##1.CrossplatformInputをインポートする
上部メニューバーから、[Assets]->[Import Package]->[CrossPlatformInput]の順に選択し、パッケージをインポートします。
##2.Prefabを設置する
Projectウィンドウから、[Standard Assets]->[CrossPlatformInput]->[Prefabs]->[MobileSingleStickControl]を選びシーン内に設置します。
するとバーチャルパッドとついでにボタンが表示されます。
注意:このときBuild SettingでPlatformがAndroidもしくはiOSに設定されていないと、パッドは表示されません!(筆者はこれを忘れていてめっちゃつまづいた)
この時点でシーンを実行すると、パッドをマウス左クリックでホールドすることでぐりぐり動かせるようになります。
##3.パッドからの入力を受け取るスクリプトを記述する
最後にスクリプトでパッドへの入力値を確認してみます。
冒頭に、using UnityStandardAssets.CrossPlatformInput;
を記述することで
CrossPlatformInputManager.GetAxisRaw
によりパッドへの入力値を受け取れます。
using UnityEngine;
using System.Collections;
using UnityStandardAssets.CrossPlatformInput; //←追加
public class Sample : MonoBehaviour {
// Update is called once per frame
void Update () {
// 水平方向への入力( -1.0 ~ 1.0 )
Debug.Log( "Horizontal : " + CrossPlatformInputManager.GetAxisRaw( "Horizontal" ) );
// 垂直方向への入力( -1.0 ~ 1.0 )
Debug.Log( "Vertical : " + CrossPlatformInputManager.GetAxisRaw( "Vertical" ) );
}
}
実行してみると、Console画面にパッドへの入力値が表示されているのが分かります。
あとはこの値をキャラクターの移動などに用いるだけですね。