JoystickPack の Joystick で Cinemachine の FreeLook Camera を操作する

# 概要
[Joystick Pack](https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631) というアセットを使って Cinemachine のカメラを操作する方法を備忘録として残します。

今回は以下のように、Cube に焦点を当てたカメラを、Joystick で操作します。
![last2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/fc79b60b-46b2-9e7e-f4bf-3df7e05031a7.gif)


# 手順
## 準備
1. [Joystick Pack](https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631), [Cinemachine](https://unity.com/unity/features/editor/art-and-design/cinemachine), [Input Systems](https://docs.unity3d.com/Packages/com.unity.inputsystem@1.4/manual/QuickStartGuide.html) をインストールする
   - この時、Edit > Project Settings を開き、Player 項目の Other Settings > Configuration > Active Input Handling を `Both` にする
   ![Screen Shot 2022-07-23 at 20.02.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/c1cd8820-8bd2-bbb5-2de0-ad2aac2065ed.png)
1. 3D Object の Cube を追加する（カメラの追跡対象）

### Joystick の追加
1. UI の Canvas を追加して、Joystick をその下に配置する
![Screen Shot 2022-07-23 at 11.39.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/13297d49-754a-e79e-8fd6-e5c5af06ef77.png)

この時点で実行すると、Joystickが現れる
![joystick.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/fb9c7ab6-f422-77ef-ec2b-5766702aa238.gif)

### Cinemachine の設定

1. Cinemachine > Create Freelook camera でカメラを追加
![Screen Shot 2022-07-23 at 12.49.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/7743d5ae-a11b-dbbd-6b32-7239c8b5f57c.png)
1. FreeLook Camera オブジェクトの `Follow` と `Look at` に `Cube` を追加する
![Screen Shot 2022-07-23 at 12.51.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/480c34f6-111a-ce39-22ee-e1d4bbc7ab7d.png)

## Joystick で FreeLook camera を操作できるようにする
1. Joystick に `On-Screen Stick` をアタッチする。`Control Path` は `GamePad` の `Right Stick` にする
![Screen Shot 2022-07-23 at 12.47.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/f047fd65-59e6-c5cf-71c5-194ce6295719.png)
1. Cube という Input Action を追加する（名前はなんでもいいです）
![Screen Shot 2022-07-23 at 12.54.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/21758293-8d63-78c6-e0a6-1c5fb1b9f04d.png)
   - Input Action は以下のような設定にする
![Screen Shot 2022-07-23 at 12.55.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/5c23caec-680c-801f-a90c-481b19c1aee3.png)
![Screen Shot 2022-07-23 at 12.56.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/fa381c93-f37d-263d-ab49-2ba92762b83d.png)
1. FreeLook Camera に `Cinemachine Input Provider` を追加し、XY axis に作成した `Cube` input action を指定する
![Screen Shot 2022-07-23 at 19.42.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/171b8771-505f-2653-6862-3ea5438deb1c.png)
1. 実行すると、Joystick でカメラを移動させることができます
![last2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747207/fc79b60b-46b2-9e7e-f4bf-3df7e05031a7.gif)

Joystick の操作を逆にしたいときは以下の記事を見てください

https://qiita.com/ozumin/items/6a96e9897be37193c788

# 動作環境
- Unity: 2020.3.23f1
- Cinemachine: 2.6.15
- Input System: 1.0.2
- Joystick: 2.1

# 参考サイト
- [【Unity】三人称視点のカメラワークを簡単に実装する方法](https://nekojara.city/unity-3rd-person-camera)
- [【Unity】CinemachineとInput Systemを連携させる](https://nekojara.city/unity-cinemachine-input-system)
- [【Unity】Input Systemでバーチャルパッドを実装する](https://nekojara.city/unity-input-system-on-screen-controls)