広島、晴れのち晴れ

【Unity】JOYSTICK PACK – Dynamic Joystick(Floating Joystick) について

スマホ向けアプリで利用されるVirtual Joystickで有名なフリーアセット「JOYSTICK PACK」がとても使い易くて申し分ないのですが、どうしても気になった事があったので書きます。

気になった事

Dynamic Joystick もしくは Floating Joystickを選択した時、ゲーム開始時の一押し目でいきなり動いてしまう+条件によってはJoystickの画面が表示されない。(一度、指を離して再度画面を押すと思い通りに動く)

上記症状は以下の条件で発生しました。

原因は一番最初に画面をタッチした時にCameraの設定がされていないためでした。
以下のように修正しました。


// Assets ≫ Joystick Pack ≫ Scripts ≫ Base ≫ Joystick.cs

protected virtual void Start()
{
HandleRange = handleRange;
DeadZone = deadZone;
baseRect = GetComponent<RectTransform>();
canvas = GetComponentInParent<Canvas>();
if (canvas == null)
Debug.LogError("The Joystick is not placed inside a canvas");

Vector2 center = new Vector2(0.5f, 0.5f);
background.pivot = center;
handle.anchorMin = center;
handle.anchorMax = center;
handle.pivot = center;
handle.anchoredPosition = Vector2.zero;

// 追加部分
cam = null;
if (canvas.renderMode == RenderMode.ScreenSpaceCamera)
cam = canvas.worldCamera;
}
 

モバイルバージョンを終了