「Unity/Cinemachine/2D」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→2Dでの対応) |
(→2Dでの対応) |
||
(同じ利用者による、間の2版が非表示) | |||
行7: | 行7: | ||
*ChinemachineVirtualCameraのBodyがFramingTransposerになってることを確認。 | *ChinemachineVirtualCameraのBodyがFramingTransposerになってることを確認。 | ||
*ChinemachineVirtualCameraのAimをDo nothingになってることを確認。 | *ChinemachineVirtualCameraのAimをDo nothingになってることを確認。 | ||
+ | |||
+ | プレイヤー入力操作のための適当なサンプル | ||
+ | <pre> | ||
+ | void Update() | ||
+ | { | ||
+ | if (Input.GetKey(KeyCode.LeftArrow)) | ||
+ | { | ||
+ | playerImage.transform.localPosition = new Vector3( | ||
+ | playerImage.transform.localPosition.x - 1, | ||
+ | playerImage.transform.localPosition.y, | ||
+ | playerImage.transform.localPosition.z); | ||
+ | |||
+ | } | ||
+ | else if (Input.GetKey(KeyCode.RightArrow)) | ||
+ | { | ||
+ | playerImage.transform.localPosition = new Vector3( | ||
+ | playerImage.transform.localPosition.x + 1, | ||
+ | playerImage.transform.localPosition.y, | ||
+ | playerImage.transform.localPosition.z); | ||
+ | } | ||
+ | else if (Input.GetKey(KeyCode.UpArrow)) | ||
+ | { | ||
+ | playerImage.transform.localPosition = new Vector3( | ||
+ | playerImage.transform.localPosition.x, | ||
+ | playerImage.transform.localPosition.y + 1, | ||
+ | playerImage.transform.localPosition.z); | ||
+ | } | ||
+ | else if (Input.GetKey(KeyCode.DownArrow)) | ||
+ | { | ||
+ | playerImage.transform.localPosition = new Vector3( | ||
+ | playerImage.transform.localPosition.x, | ||
+ | playerImage.transform.localPosition.y - 1, | ||
+ | playerImage.transform.localPosition.z); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | 参考:https://nekojara.city/unity-cinemachine-2d |
2022年1月4日 (火) 12:40時点における最新版
2Dでの対応
基本的にBodyがFramingTransposerであること以外、3Dとかわらない。
- MainCameraのInspectorから、AddCompornentして、CinemachineBrainを追加する
- UnityメインのCinemachineのCreate 2D Cameraを追加する
- 追っかけるPlayerImageオブジェクトを作って、ChinemachineVirtualCameraのFollowとLookAtへ、それを追加する
- ChinemachineVirtualCameraのBodyがFramingTransposerになってることを確認。
- ChinemachineVirtualCameraのAimをDo nothingになってることを確認。
プレイヤー入力操作のための適当なサンプル
void Update() { if (Input.GetKey(KeyCode.LeftArrow)) { playerImage.transform.localPosition = new Vector3( playerImage.transform.localPosition.x - 1, playerImage.transform.localPosition.y, playerImage.transform.localPosition.z); } else if (Input.GetKey(KeyCode.RightArrow)) { playerImage.transform.localPosition = new Vector3( playerImage.transform.localPosition.x + 1, playerImage.transform.localPosition.y, playerImage.transform.localPosition.z); } else if (Input.GetKey(KeyCode.UpArrow)) { playerImage.transform.localPosition = new Vector3( playerImage.transform.localPosition.x, playerImage.transform.localPosition.y + 1, playerImage.transform.localPosition.z); } else if (Input.GetKey(KeyCode.DownArrow)) { playerImage.transform.localPosition = new Vector3( playerImage.transform.localPosition.x, playerImage.transform.localPosition.y - 1, playerImage.transform.localPosition.z); } }