private void SetupCamera() { if (this.m_RenderMode == DrawCameraMode.Overdraw) { this.m_Camera.backgroundColor = Color.black; } else { this.m_Camera.backgroundColor = (Color) kSceneViewBackground; } EditorUtility.SetCameraAnimateMaterials(this.m_Camera, this.m_SceneViewState.showMaterialUpdate); this.ResetIfNaN(); this.m_Camera.transform.rotation = this.m_Rotation.value; float aspectNeutralFOV = this.m_Ortho.Fade(90f, 0f); if (aspectNeutralFOV > 3f) { this.m_Camera.orthographic = false; this.m_Camera.fieldOfView = this.GetVerticalFOV(aspectNeutralFOV); } else { this.m_Camera.orthographic = true; this.m_Camera.orthographicSize = this.GetVerticalOrthoSize(); } this.m_Camera.transform.position = this.m_Position.value + (this.m_Camera.transform.rotation * new Vector3(0f, 0f, -this.cameraDistance)); float num2 = Mathf.Max((float) 1000f, (float) (2000f * this.size)); this.m_Camera.nearClipPlane = num2 * 5E-06f; this.m_Camera.farClipPlane = num2; this.m_Camera.renderingPath = GetSceneViewRenderingPath(); if (!this.CheckDrawModeForRenderingPath(this.m_RenderMode)) { this.m_RenderMode = DrawCameraMode.Textured; } this.SetSceneCameraHDRAndDepthModes(); Handles.EnableCameraFlares(this.m_Camera, this.m_SceneViewState.showFlares); Handles.EnableCameraSkybox(this.m_Camera, this.m_SceneViewState.showSkybox); this.m_Light[0].transform.position = this.m_Camera.transform.position; this.m_Light[0].transform.rotation = this.m_Camera.transform.rotation; if (this.m_AudioPlay) { AudioUtil.SetListenerTransform(this.m_Camera.transform); AudioUtil.UpdateAudio(); } if (this.m_ViewIsLockedToObject && (Selection.gameObjects.Length > 0)) { switch (this.m_DraggingLockedState) { case DraggingLockedState.NotDragging: this.m_Position.value = Selection.activeGameObject.transform.position; break; case DraggingLockedState.LookAt: if (!this.m_Position.value.Equals(Selection.activeGameObject.transform.position)) { if (!EditorApplication.isPlaying) { this.m_Position.target = Selection.activeGameObject.transform.position; } else { this.m_Position.value = Selection.activeGameObject.transform.position; } } else { this.m_DraggingLockedState = DraggingLockedState.NotDragging; } break; } } }
public override void OnEnable() { base.titleContent = base.GetLocalizedTitleContent(); this.m_RectSelection = new RectSelection(this); if (this.grid == null) { this.grid = new SceneViewGrid(); } this.grid.Register(this); if (this.svRot == null) { this.svRot = new SceneViewRotation(); } this.svRot.Register(this); base.autoRepaintOnSceneChange = true; this.m_Rotation.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_Position.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_Size.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_Ortho.valueChanged.AddListener(new UnityAction(this.Repaint)); base.wantsMouseMove = true; base.dontClearBackground = true; s_SceneViews.Add(this); this.m_Lighting = EditorGUIUtility.IconContent("SceneviewLighting", "Lighting|The scene lighting is used when toggled on. When toggled off a light attached to the scene view camera is used."); this.m_Fx = EditorGUIUtility.IconContent("SceneviewFx", "Fx|Toggles skybox, fog and lens flare effects."); this.m_AudioPlayContent = EditorGUIUtility.IconContent("SceneviewAudio", "AudioPlay|Toggles audio on or off."); this.m_GizmosContent = new GUIContent("Gizmos"); this.m_2DModeContent = new GUIContent("2D"); this.m_SceneViewOverlay = new SceneViewOverlay(this); EditorApplication.modifierKeysChanged = (EditorApplication.CallbackFunction) Delegate.Combine(EditorApplication.modifierKeysChanged, new EditorApplication.CallbackFunction(SceneView.RepaintAll)); this.m_DraggingLockedState = DraggingLockedState.NotDragging; this.CreateSceneCameraAndLights(); if (this.m_2DMode) { this.LookAt(this.pivot, Quaternion.identity, this.size, true, true); } base.OnEnable(); }