Ejemplo n.º 1
0
        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());
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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");
            }
        }
Ejemplo n.º 3
0
        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;
                    }
                }
            }
        }