private static void HandleMouseUp(SceneView view, int id, int button, int clickCount) { if (GUIUtility.hotControl == id) { SceneViewMotion.ResetDragState(); RaycastHit raycastHit; if (button == 2 && !SceneViewMotion.s_Dragged && SceneViewMotion.RaycastWorld(Event.current.mousePosition, out raycastHit)) { Vector3 b = view.pivot - view.rotation * Vector3.forward * view.cameraDistance; float newSize = view.size; if (!view.orthographic) { newSize = view.size * Vector3.Dot(raycastHit.point - b, view.rotation * Vector3.forward) / view.cameraDistance; } view.LookAt(raycastHit.point, view.rotation, newSize); } Event.current.Use(); } }