スマホゲームなどで使う仮想スティックが簡単に実装できる有料アセット『Ultimate Joystick』の使い方の備忘録です。
Ultimate Joystick | Input Management | Unity Asset Store
Get the Ultimate Joystick package from Tank & Healer Studio and speed up your game development process. Find this & other Input Management options on the Unity ...
使い方
アセットはすでにインポートした前提です。
使い方は大まかに3つの手順になります。
- 使いたいJoystickをPrefabsフォルダから選び、Hierarchyにドラッグ&ドロップ
- そのプレファブを選択し、InspectorにアタッチされているUltimate Joystickから、Joystick Nameをつける。例えば「Movement」。
- スクリプトコードを作成し(後述)、動かしたいオブジェクトにアタッチ
以下詳細です。
使いたいJoystickをPrefabsフォルダから選び、Hierarchyにドラッグ&ドロップ
ProjectのTank & Healer Studio > Ultimate Joystick > Prefabsで、いくつかのJoystickがあるので、使いたいものをチョイス。Hierarchyに持っていってドラッグ&ドロップ
InspectorにアタッチされているUltimate Joystickから、Joystick Nameをつける。例えば「Movement」。
先ほどドロップしたJoystickを選択する。
Inspector上に、Ultimate Joystickと言うScriptがあるので、そこの中にあるJoystick Nameに、任意の名前をつける。この名前は、スクリプトで認識させる時に使う。
今回は「Movement」と言う名前にする。
スクリプトコードを作成し、動かしたいオブジェクトにアタッチ
新しくC#フォルダを作成する。例えば「JoystickManagar」など。
今回はシンプルに対象を動かすために以下のコード。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JoystickManager : MonoBehaviour
{
RectTransform mytransform;
[SerializeField]
float movespeed = 300f;
// Start is called before the first frame update
void Start()
{
mytransform = GetComponent<RectTransform>();
}
// Update is called once per frame
void Update()
{
/*通常の移動(キーボードWASDキーでの移動コード)
*mytransform.position = mytransform.position + new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0) * movespeed * Time.deltaTime * -1;
*/
mytransform.position = mytransform.position + new Vector3(UltimateJoystick.GetHorizontalAxis("Movement"), UltimateJoystick.GetVerticalAxis("Movement"), 0) * movespeed * Time.deltaTime;
}
}
これを動かしたい対象(Playerなど)にアタッチする。
これでJoystickでグリグリ動くようになる。
感想
めっちゃ便利ですね。
レビューの評判も高かったので買ってよかった。