private static void RemoveOverCloud() { GameObject overCloudPrefab = GameObject.Find("OverCloud"); if (overCloudPrefab != null) { GameObject.DestroyImmediate(overCloudPrefab); } Camera mainCamera = GaiaUtils.GetCamera(); if (mainCamera != null) { OverCloudCamera ocCamera = mainCamera.gameObject.GetComponent <OverCloudCamera>(); if (ocCamera != null) { GameObject.DestroyImmediate(ocCamera); } } if (GaiaUtils.CheckIfSceneProfileExists()) { GaiaGlobal.Instance.SceneProfile.m_waterSystemMode = GaiaConstants.GlobalSystemMode.Gaia; GaiaSettings gaiaSettings = GaiaUtils.GetGaiaSettings(); if (gaiaSettings != null) { UnityPipelineProfile pipelineProfile = gaiaSettings.m_pipelineProfile; if (pipelineProfile != null) { GaiaLighting.GetProfile(GaiaGlobal.Instance.SceneProfile, pipelineProfile, GaiaUtils.GetActivePipeline()); } } } }
private static void AddOverCloud() { GameObject overCloudPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(GaiaUtils.GetAssetPath("OverCloud.prefab")); if (overCloudPrefab != null) { Light sunLight = GaiaUtils.GetMainDirectionalLight(); if (sunLight != null) { GameObject.DestroyImmediate(sunLight.gameObject); } PrefabUtility.InstantiatePrefab(overCloudPrefab, GetOrCreateParentObject(GaiaConstants.gaiaLightingObject, true).transform); Camera mainCamera = GaiaUtils.GetCamera(); if (mainCamera != null) { OverCloudCamera ocCamera = mainCamera.gameObject.GetComponent <OverCloudCamera>(); if (ocCamera == null) { ocCamera = mainCamera.gameObject.AddComponent <OverCloudCamera>(); } } GaiaUtils.SetCustomLightSystem(overCloudPrefab); } else { Debug.LogError("OverCloud Prefab was not found"); } }
private static void SetOverCloudQuality(OverCloudQuality quality) { Camera mainCamera = GaiaUtils.GetCamera(); if (mainCamera != null) { OverCloudCamera ocCamera = mainCamera.GetComponent <OverCloudCamera>(); if (ocCamera != null) { switch (quality) { case OverCloudQuality.High: ocCamera.downsample2DClouds = false; ocCamera.downsampleFactor = DownSampleFactor.Full; ocCamera.highQualityClouds = true; ocCamera.renderAtmosphere = true; ocCamera.renderScatteringMask = true; ocCamera.renderVolumetricClouds = true; ocCamera.scatteringMaskSamples = SampleCount.High; ocCamera.lightSampleCount = SampleCount.High; break; case OverCloudQuality.Medium: ocCamera.downsample2DClouds = true; ocCamera.downsampleFactor = DownSampleFactor.Half; ocCamera.highQualityClouds = true; ocCamera.renderAtmosphere = true; ocCamera.renderScatteringMask = true; ocCamera.renderVolumetricClouds = true; ocCamera.scatteringMaskSamples = SampleCount.Normal; ocCamera.lightSampleCount = SampleCount.Normal; break; case OverCloudQuality.Low: ocCamera.downsample2DClouds = true; ocCamera.downsampleFactor = DownSampleFactor.Eight; ocCamera.highQualityClouds = false; ocCamera.renderAtmosphere = true; ocCamera.renderScatteringMask = false; ocCamera.renderVolumetricClouds = false; ocCamera.scatteringMaskSamples = SampleCount.Low; ocCamera.lightSampleCount = SampleCount.Low; break; } } } }