【Unity】シーンカメラの位置をセーブ&ロード

意外と知られていなさそうな、シーンビューのカメラの位置をセーブ&ロードする方法。製作時の見た目の調整ならゲームカメラを使えばよいが、製作過程の記録などに役立つ……かも。

ポイントは lastActiveSceneView の camera ではなく pivot を使う所。camera を使うと、ロード時に上手くいかない。

 

using UnityEditor;

static Vector3 mCameraPos = Vector3.zero;
static Quaternion mCameraRot = Quaternion.identity;

[MenuItem("配置ツール/カメラ位置をセーブ",false , 10)]
static void SaveCameraPos()
{
	mCameraPos = SceneView.lastActiveSceneView.pivot;
	mCameraRot = SceneView.lastActiveSceneView.rotation;
}

[MenuItem("配置ツール/カメラ位置をロード",false , 11)]
static void LoadCameraPos()
{
	SceneView.lastActiveSceneView.pivot		= mCameraPos;
	SceneView.lastActiveSceneView.rotation	= mCameraRot;
	SceneView.lastActiveSceneView.Repaint();
}