【Unity】カメラを多段階にズームする方法

unity

こんにちは、のっくんです。

今日は脱出ゲーム等でカメラを複数回ズームする方法をご紹介します。

実装イメージとしては以下の通りです。

前の記事では一度だけズームする方法をご紹介したのですが、今回は拡張して複数回ズームするようにしてみました。

仕組みとしては、

  • コライダ付きの空オブジェクト(クリック用オブジェクト)を配置
  • Aがクリックされたらカメラを切り替える

となっています。

順番に解説します。

クリック用オブジェクトを作成する

ユーザがクリックするためのクリック用オブジェクトを作成します。

クリック用オブジェクトはユーザがクリックする場所に設置します。

クリック用オブジェクトにはBoxコライダ、スクリプト、EventTriggerをアタッチします。

スクリプトにはズーム用のカメラを追加します。

ヒエラルキービューワの+ボタンでCameraを選び追加、適切な位置に配置します。

配置したズームカメラを上記のスクリプトにセットします。

カメラのズーム

クリック用オブジェクトがクリックされたらズーム処理を実行します。

具体的には、

  1. 現在のカメラをオフにする
  2. ズーム用カメラをオンにする

処理を行います。

元に戻るときのために現状使用しているカメラを配列に保存します。

戻る

戻るボタンが押されたときの処理です。

  1. 現在のカメラをオフにする
  2. 1つ前のカメラをオンにする

レイヤー分けをする

cameraにアタッチするPhysicsRaycasterではレイヤーを指定することができます。

これを利用してズーム時にだけクリックできるオブジェクトの作成が可能です。

おわり。