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

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

気になった事

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

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

  • Canvas のRender Modeが「Screen Space – Camera」
  • Dynamic Joystick(Floating Joystick)のAxis OptionsがBoth以外だと(一押し目で)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;
}
 


レシピブック(レシピ登録アプリ)
手書きノート(メモ登録アプリ)

投稿日

カテゴリー:

ブログランキング・にほんブログ村へ

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です