Ultimate Joystickを使えるようにする【Unity・備忘録】

ゲーム開発
スポンサーリンク

スマホゲームなどで使う仮想スティックが簡単に実装できる有料アセット『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つの手順になります。

  1. 使いたいJoystickをPrefabsフォルダから選び、Hierarchyにドラッグ&ドロップ
  2. そのプレファブを選択し、InspectorにアタッチされているUltimate Joystickから、Joystick Nameをつける。例えば「Movement」。
  3. スクリプトコードを作成し(後述)、動かしたいオブジェクトにアタッチ

以下詳細です。

使いたい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でグリグリ動くようになる。

感想

めっちゃ便利ですね。

レビューの評判も高かったので買ってよかった。

参考

タイトルとURLをコピーしました