【Unity】ソシャゲの味方!バーチャルスティック実装方法!

Unity

ソシャゲの味方!バーチャルスティック実装方法!

今回は、「JOYSTICK PACK」というAssetを使い、スマホゲーを制作する際に役に立つバーチャルスティックの実装方法を解説します。

 

バーチャルスティックとは?

画面上に仮想のジョイスティックを作成することで、プレイヤーを操作できるようにするものです。

スマホゲーにおいては、コントローラーがないため基本的には、バーチャルスティックを使って操作します。

バーチャルスティックの実装の手順

JOYSTICK PACKをインポート

Asset StoreでJOYSTICK PACKと検索してください。

Joystick Pack

JOYSTICK PACKをダウンロードしImportします。

Joystick Pack Import

バーチャルスティックの追加

まずは、SceneにCanvasを追加してください。

Add Canvas

バーチャルスティックは、このCanvas内に追加していきます。

バーチャルスティックは、Assets→Joystick Pack→Prefabsに入っています。

Prefabsフォルダには、Dynamic Joystick、Fixed Joystick、Floating Joystick、Variable Joystickの4種類のPrefabが含まれています。それぞれ違った使い方ができるので解説します。

Prefabs

名前 使い方
Dynamic Joystick ユーザーが触れた場所から始まり、ユーザー操作した方向にバーチャルスティックも動きます。
Fixed Joystick バーチャルスティックの位置を固定する。
Floating Joystick
ユーザーが触れた場所から始まり、画面を離すとバーチャルスティックが消えます。
Variable Joystick 上記3つのバーチャルスティックをユーザーが決めることができます。

 

今回は、最もソシャゲで利用されるタイプのジョイスティックであるFixed JoystickをCanvasに追加してみます。

Add Joystick

これでバーチャルスティックを追加することができました。

スクリプトの作成

一般的には、Playerを移動させるためには下記のようなプログラムを使用すると思います。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerManager : MonoBehaviour
{

void Start()
{

}

void Update()
{
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");

transform.position += new Vector3(x, y, 0);
}
}

インポートしたAssetを使用するために、プログラムを少し変更します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerManager : MonoBehaviour
{
public FixedJoystick joystick;//FixedJoystickを取得
void Start()
{

}

void Update()
{
//水平と垂直方向のデータを取得
float x = joystick.Horizontal;
float y = joystick.Vertical;

//xとyの値によってポジションを新たに取得する
transform.position += new Vector3(x, y, 0);
}
}

これで、スクリプトが完成しました。

別のジョイスティックを取得する場合は、public FixedJoystick joystick;を自身が使いたいジョイスティックに変更することで使うことができます。

実際に動かしてみる

先程作成した、PlayerManagerスクリプトをPlayerオブジェクトにドラックアンドドロップして追加しましょう。

PlayerMnagerスクリプトにJoystickを追加して終了です。

Add PlayerManager

transform.position += new Vector3(x, y, 0);だとPlayerが動きすぎてしますので、

transform.position += new Vector3(x/10, y/10, 0);に変更しました。

 

まとめ

今回は、「JOYSTICK PACK」というAssetを使い、スマホゲーを制作する際に役に立つバーチャルスティックの実装方法を解説しました。他にもUnityを使ったゲーム開発の方法を解説しているので、良かったら見ていってください!

コメント

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