22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Unity5][Android][iOS]バーチャルパッドを実装する

Posted at

Unity5でスマートフォンゲーム向けにバーチャルパッドを実装する方法を紹介します。
#目標
今回実装するバーチャルパッドは下図のようなものです。
画像左下のパッドへの入力値を表示するところまでを行います。
手順3.png

#手順

  1. CrossPlatformInputをインポートする
  2. Prefabを設置する
  3. パッドからの入力を受け取るスクリプトを記述する

##1.CrossplatformInputをインポートする
上部メニューバーから、[Assets]->[Import Package]->[CrossPlatformInput]の順に選択し、パッケージをインポートします。
手順1.png

##2.Prefabを設置する
Projectウィンドウから、[Standard Assets]->[CrossPlatformInput]->[Prefabs]->[MobileSingleStickControl]を選びシーン内に設置します。
手順2_2.png

するとバーチャルパッドとついでにボタンが表示されます。
注意:exclamation::このときBuild SettingでPlatformがAndroidもしくはiOSに設定されていないと、パッドは表示されません!(筆者はこれを忘れていてめっちゃつまづいた)

この時点でシーンを実行すると、パッドをマウス左クリックでホールドすることでぐりぐり動かせるようになります。

##3.パッドからの入力を受け取るスクリプトを記述する
最後にスクリプトでパッドへの入力値を確認してみます。
冒頭に、using UnityStandardAssets.CrossPlatformInput; を記述することで
CrossPlatformInputManager.GetAxisRawによりパッドへの入力値を受け取れます。

Sample.cs
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画面にパッドへの入力値が表示されているのが分かります。
手順3.png

あとはこの値をキャラクターの移動などに用いるだけですね。

22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?