目次
はじめに
Unityでは1つのオブジェクトにフォーカスが行くようにするには、対象のオブジェクトの位置(Position)からカメラの相対位置を固定してやれば問題は解決します。
しかし、複数のオブジェクトに対してフォーカスを行おうとすると、カメラの視野角、複数オブジェクトの位置計算、カメラのスムーズな移動などの実装が必要になるため本問題を解決するためにスクリプトを作ってみました、よければ使ってみてください。
Unityを知らない方は、ぜひ こちらの記事 をご参照ください。
Link
- Github:https://github.com/fastsystem/unity-camera-focus-example
- デモ:http://www.fast-system.jp/wp-content/uploads/static/unity-camera-focus-example/
- Qiita:(未作成)
画面説明
- マウスの左クリック:カメラの回転
- マウスのホイールスクロール:カメラのズーム
- マウスのホイールドラッグ:カメラの移動
- White/Red/Blue/Greenを選択してFocusボタンで実際にデモが動く
使い方
CameraFucusオブジェクトを選択すると、2つのスクリプトがアタッチされています。
- CameraFocus:本スクリプトの本体
- CameraFocusGui:本スクリプトを実行するためのデモ
CameraFocus
- Move Time:カメラの移動に要する時間を指定します。
- Default Distance:フォーカスオブジェクトが1つの場合に、カメラの相対位置を固定するため初期値
CameraFocusGui
- Main Camera:デモで使うカメラの設定
- White:デモで使うオブジェクト1
- Red: デモで使うオブジェクト2
- Green: デモで使うオブジェクト3
- Blue: デモで使うオブジェクト4
ソースコード
デモ
WebGLで出力していますのでブラウザでデモ実行可能なので試してみてください。
http://www.fast-system.jp/wp-content/uploads/static/unity-camera-focus-example/