void SetupMainCameras() { Camera[] cams = Camera.allCameras; scaledSpaceCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera ScaledSpace"); farCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 01"); nearCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 00"); if (scaledSpaceCamera && farCamera && nearCamera) { farCameraShadowCascadeTweaker = (TweakFarCameraShadowCascades)farCamera.gameObject.AddComponent(typeof(TweakFarCameraShadowCascades)); if (mainSettings.overrideNearClipPlane) { Utils.LogDebug("Override near clip plane from:" + nearCamera.nearClipPlane.ToString() + " to:" + mainSettings.nearClipPlane.ToString()); nearCamera.nearClipPlane = mainSettings.nearClipPlane; } } else if (HighLogic.LoadedScene == GameScenes.MAINMENU) { //if are in main menu, where there is only 1 camera, affect all cameras to Landscape camera scaledSpaceCamera = Camera.allCameras.Single(_cam => _cam.name == "Landscape Camera"); farCamera = scaledSpaceCamera; nearCamera = scaledSpaceCamera; } else if (HighLogic.LoadedScene == GameScenes.TRACKSTATION) { //if in trackstation, just to get rid of some nullrefs farCamera = scaledSpaceCamera; nearCamera = scaledSpaceCamera; } }
void SetupMainCameras() { Camera[] cams = Camera.allCameras; scaledSpaceCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera ScaledSpace"); if (SystemInfo.graphicsDeviceVersion.Contains("Direct3D 11.0")) { unifiedCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 00"); unifiedCameraEnabled = true; Utils.LogDebug("Using Unified Camera."); } else { farCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 01"); nearCamera = Camera.allCameras.FirstOrDefault(_cam => _cam.name == "Camera 00"); unifiedCameraEnabled = false; Utils.LogDebug("Not using Unified Camera."); } if (((scaledSpaceCamera && unifiedCamera) && unifiedCameraEnabled) || (!unifiedCameraEnabled && (scaledSpaceCamera && farCamera && nearCamera))) { farCameraShadowCascadeTweaker = (TweakFarCameraShadowCascades)ReturnProperCamera(false, false).gameObject.AddComponent(typeof(TweakFarCameraShadowCascades)); setupClipPlanes(); } else if (HighLogic.LoadedScene == GameScenes.MAINMENU) { //if are in main menu, where there is only 1 camera, affect all cameras to Landscape camera scaledSpaceCamera = Camera.allCameras.Single(_cam => _cam.name == "Landscape Camera"); if (unifiedCameraEnabled) { unifiedCamera = scaledSpaceCamera; } else { scaledSpaceCamera = Camera.allCameras.Single(_cam => _cam.name == "Landscape Camera"); farCamera = scaledSpaceCamera; nearCamera = scaledSpaceCamera; } // decide near clipplane depth, main menu needs like none if (HighLogic.LoadedScene == GameScenes.MAINMENU) { ReturnProperCamera(false, false).nearClipPlane = 0.5f; } } else if (HighLogic.LoadedScene == GameScenes.TRACKSTATION) { //if in trackstation, just to get rid of some nullrefs if (unifiedCameraEnabled) { unifiedCamera = scaledSpaceCamera; } else { farCamera = scaledSpaceCamera; nearCamera = scaledSpaceCamera; } } }