スマホタッチパネルをJoyStickのような入力にする
タッチパネルを使ったJoyStickを実装したい時にアセットストアから無料のJoystickPackを使うと簡単にできます
目次
サンプルに使うプロジェクト
もちろんゼロからでもできますが、今回は。JoyStickの練習で使ったプロジェクトの続きとして実装しましょう
アセット
プロジェクトを起動したら、アセットストアからインポートしましょう
インポートファイル
シーンの構成
前回作成したスクリプトの変更
スマホ用にメソッドを分けます
using UnityEngine;
using UnityEngine.Events;
public class InputController : MonoBehaviour
{
public UnityEvent<Vector2> inputEvent;
public Joystick joyStick;
void Update()
{
// PC用
// StickInput();
// スマホ用
SmaartPhoneInput();
}
void StickInput()
{
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
Vector2 position = new Vector2(x, y);
inputEvent.Invoke(position);
}
void SmaartPhoneInput()
{
float x = joyStick.Horizontal;
float y = joyStick.Vertical;
Vector2 position = new Vector2(x, y);
inputEvent.Invoke(position);
}
}
固定JoyStick
FixedJoystick ゲームオブジェクト
JoyStickは移動しません
今回は、左下に固定されるようにしました
UIの設定は次のキャプチャーを参考にしてください
Handle子オブジェクト
これは大きさだけ変更します
InputControllerの選択JoyStickにアウトレット接続
実行結果
固定JoyStickのいろいろな設定
Handle Range
ハンドル(ノブの部分)の動かせる範囲
Dead Zone
ハンドルを少しだけ動かしても0のままの範囲
Axis Options
軸の選択になります
SnapX SnapY
じわじわ入力されず、いきなり-1,+1に飛びます
右上の十字表示を確認してください
その他のJoyStick
ダイナミック JoyStick
ハンドルをドラッグしながら自由に動かすことができます
フローティング JoyStick
ダイナミックのようにクリックした場所にJoyStickが現れますが、ドラッグして移動しても、最初の場所からは移動しません
変更可能なJoyStick
上記の設定をインスペクターから変更できるような、まとめたJoyStickになります
参考
マニュアル(英語)
マニュアル(翻訳)
ディスカッション
コメント一覧
まだ、コメントがありません