簡単にバーチャルパッドを設置できるアセット「Joystick Pack」のうち、画面に固定のパッドを設置する「Fixed Joystick」についての解説です。
| 利用例: スターリーキャプターのゲーム画面 |
リファレンス
スクリプト上で使用するプロパティ
| プロパティ名 | 型 | 説明 |
|---|---|---|
| Horizontal | float | スティックの横方向の傾きの値を格納 -1f〜1fの範囲 |
| Vertical | float | スティックの縦方向の傾きの値を格納 -1f〜1fの範囲 |
| Direction | Vector2 | Horizontal,Vectorの値を持つVector2型のデータ |
インスペクター上に表示されるプロパティ
| プロパティ名 | 型 | 説明 | |
|---|---|---|---|
| Handle Range | float | ハンドルの可動域 | |
| Dead Zone | float | 反応させない部分 例えば0.5とすると、スティックを半分傾けても反応しなくなる | |
| Axis Options | 選択 | Both,Horizontal,Verticalの3択 Horizontalだと横方向にだけ移動、Verticalだと縦方向にだけ移動 | |
| Snap X | bool | Horizontalの値が0か1のどちらかになる | |
| Snap Y | bool | Verticalの値が0か1のどちらかになる |
Axis Options 補足
| Horizontalの場合 | Verticalの場合 |
Snap X, Snap Y 補足
スティックを傾けて0か1かしか値が出力されないので、十字キーのような使い方が想定される。
利用例
記事冒頭のアニメーションのように、Joystick Packが出力するx方向、y方向の値を利用して、オブジェクトを移動させることができます。
オブジェクトを移動させる処理自体は、別の仕組みを利用します。Rigidbody2Dが提供する物理演算を利用する方法や、transform.positionで座標位置を指定する方法があります。
ソースコード(コメントにて解説)
// Joystick 設置方法
// 1. アセットストアから「Joystick Pack」を入手
// 2. プロジェクトに「Joystick Pack」をインポート
// 3. アセットインポートで追加されたプレハブ「Fixed Joystick」をCanvasに設置
public class Majo : MonoBehaviour
{
// Inspector に Joystick を登録できるようにする
[SerializeField] Joystick joystick;
// 物理演算を利用してオブジェクトを動かす
private Rigidbody2D rigidBody2D;
void Start()
{
rigidBody2D = GetComponent<Rigidbody2D>();
}
// FixedUpdate: Unityの物理演算独自の更新タイミング(0.02秒間隔 = 50FPS)
void FixedUpdate()
{
// スティックの横方向の傾きの値を格納 -1f〜1fの範囲
float directionX = joystick.Horizontal;
// スティックの盾方向の傾きの値を格納 -1f〜1fの範囲
float directionY = joystick.Vertical;
// 物理演算を利用してオブジェクトを動かす
var forceDirection = new Vector2( directionX, directionY );
float force = 10f;
rigidBody2D.AddForce( forceDirection * force );
}
}




0 件のコメント:
コメントを投稿