You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.4 KiB

  1. using UnityEngine;
  2. using UnityEditor;
  3. public class SceneViewCameraTest
  4. {
  5. [MenuItem("Tools/Camera/Snap Scene To Camera #c")]
  6. static public void MoveSceneViewCamera()
  7. {
  8. if(Camera.main == null)
  9. {
  10. Debug.LogError("No Main camera in scene");
  11. return;
  12. }
  13. Vector3 position = Camera.main.transform.position;
  14. Quaternion rotation = Camera.main.transform.rotation;
  15. //SceneView.lastActiveSceneView.size = 0.1f;
  16. SceneView.lastActiveSceneView.rotation = rotation;
  17. SceneView.lastActiveSceneView.pivot = position;
  18. SceneView.lastActiveSceneView.pivot += Camera.main.transform.forward * SceneView.lastActiveSceneView.size;
  19. SceneView.lastActiveSceneView.Repaint();
  20. }
  21. [MenuItem("Tools/Camera/Snap Camera To Scene &#c")]
  22. static public void MoveCameraToScene()
  23. {
  24. if (Camera.main == null)
  25. {
  26. Debug.LogError("No Main camera in scene");
  27. return;
  28. }
  29. GameObject camera = Camera.main.gameObject;
  30. Undo.RegisterCompleteObjectUndo(camera.transform, "Snapped Camera to Scene View");
  31. camera.transform.position = SceneView.lastActiveSceneView.pivot;
  32. camera.transform.rotation = SceneView.lastActiveSceneView.rotation;
  33. camera.transform.position -= Camera.main.transform.forward * SceneView.lastActiveSceneView.size;
  34. }
  35. }