/// <summary> /// Updates UniStorm's Cloud Quality to be Low, Medium, High, or Ultra /// </summary> public void UpdateCloudQuality(UniStormSystem.CloudQualityEnum CloudQuality) { if (UniStormSystem.Instance.UniStormInitialized) { UniStormSystem.Instance.CloudQuality = CloudQuality; UniStormClouds m_UniStormClouds = FindObjectOfType <UniStormClouds>(); if (UniStormSystem.Instance.CloudShadows == UniStormSystem.EnableFeature.Enabled) { m_UniStormClouds.SetCloudDetails((UniStormClouds.CloudPerformance)CloudQuality, (UniStormClouds.CloudType)UniStormSystem.Instance.CloudType, UniStormClouds.CloudShadowsType.Simulated); } else if (UniStormSystem.Instance.CloudShadows == UniStormSystem.EnableFeature.Disabled) { m_UniStormClouds.SetCloudDetails((UniStormClouds.CloudPerformance)CloudQuality, (UniStormClouds.CloudType)UniStormSystem.Instance.CloudType, UniStormClouds.CloudShadowsType.Off); } } }
/// <summary> /// Updates UniStorm's Cloud Type to be either Volumetric or 2D /// </summary> public void UpdateCloudType(UniStormSystem.CloudTypeEnum CloudType) { if (UniStormSystem.Instance.UniStormInitialized) { UniStormSystem.Instance.CloudType = CloudType; UniStormClouds m_UniStormClouds = FindObjectOfType <UniStormClouds>(); Material m_CloudsMaterial = FindObjectOfType <UniStormClouds>().skyMaterial; if (UniStormSystem.Instance.CloudType == UniStormSystem.CloudTypeEnum._2D) { m_CloudsMaterial.SetFloat("_uCloudsBaseEdgeSoftness", 0.2f); m_CloudsMaterial.SetFloat("_uCloudsBottomSoftness", 0.3f); m_CloudsMaterial.SetFloat("_uCloudsDetailStrength", 0.1f); m_CloudsMaterial.SetFloat("_uCloudsDensity", 0.3f); } else if (UniStormSystem.Instance.CloudType == UniStormSystem.CloudTypeEnum.Volumetric) { CloudProfile m_CP = UniStormSystem.Instance.CurrentWeatherType.CloudProfileComponent; m_CloudsMaterial.SetFloat("_uCloudsBaseEdgeSoftness", m_CP.EdgeSoftness); m_CloudsMaterial.SetFloat("_uCloudsBottomSoftness", m_CP.BaseSoftness); m_CloudsMaterial.SetFloat("_uCloudsDensity", m_CP.Density); m_CloudsMaterial.SetFloat("_uCloudsBaseScale", 1.72f); #if UNITY_COLORSPACE_GAMMA m_CloudsMaterial.SetFloat("_uCloudsCoverageBias", m_CP.CoverageBias); m_CloudsMaterial.SetFloat("_uCloudsDetailStrength", m_CP.DetailStrength); #else m_CloudsMaterial.SetFloat("_uCloudsCoverageBias", 0.082f); m_CloudsMaterial.SetFloat("_uCloudsDetailStrength", 0.082f); #endif } if (UniStormSystem.Instance.CloudShadows == UniStormSystem.EnableFeature.Enabled) { m_UniStormClouds.SetCloudDetails((UniStormClouds.CloudPerformance)UniStormSystem.Instance.CloudQuality, (UniStormClouds.CloudType)UniStormSystem.Instance.CloudType, UniStormClouds.CloudShadowsType.Simulated); } else if (UniStormSystem.Instance.CloudShadows == UniStormSystem.EnableFeature.Disabled) { m_UniStormClouds.SetCloudDetails((UniStormClouds.CloudPerformance)UniStormSystem.Instance.CloudQuality, (UniStormClouds.CloudType)UniStormSystem.Instance.CloudType, UniStormClouds.CloudShadowsType.Off); } } }