using UnityEngine; using UnityEditor; public class SceneViewCameraTest { [MenuItem("Tools/Camera/Snap Scene To Camera #c")] static public void MoveSceneViewCamera() { if(Camera.main == null) { Debug.LogError("No Main camera in scene"); return; } Vector3 position = Camera.main.transform.position; Quaternion rotation = Camera.main.transform.rotation; //SceneView.lastActiveSceneView.size = 0.1f; SceneView.lastActiveSceneView.rotation = rotation; SceneView.lastActiveSceneView.pivot = position; SceneView.lastActiveSceneView.pivot += Camera.main.transform.forward * SceneView.lastActiveSceneView.size; SceneView.lastActiveSceneView.Repaint(); } [MenuItem("Tools/Camera/Snap Camera To Scene &#c")] static public void MoveCameraToScene() { if (Camera.main == null) { Debug.LogError("No Main camera in scene"); return; } GameObject camera = Camera.main.gameObject; Undo.RegisterCompleteObjectUndo(camera.transform, "Snapped Camera to Scene View"); camera.transform.position = SceneView.lastActiveSceneView.pivot; camera.transform.rotation = SceneView.lastActiveSceneView.rotation; camera.transform.position -= Camera.main.transform.forward * SceneView.lastActiveSceneView.size; } }