using UnityEditor; using UnityEngine.Rendering; namespace Gaia { /// /// Injects GAIA_PRESENT define into project /// [InitializeOnLoad] public class GaiaDefinesEditor : Editor { static GaiaDefinesEditor() { //Make sure we inject GAIA_2_PRESENT bool updateScripting = false; var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); if (symbols.Contains("GAIA_PRESENT")) { updateScripting = true; symbols = symbols.Replace("GAIA_PRESENT", "GAIA_2_PRESENT"); } if (!symbols.Contains("GAIA_2_PRESENT")) { updateScripting = true; symbols += ";" + "GAIA_2_PRESENT"; } if (GaiaProUtils.GaiaProDefineCheck()) { if (!symbols.Contains("GAIA_PRO_PRESENT")) { updateScripting = true; symbols += ";GAIA_PRO_PRESENT"; } } if (updateScripting) { PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, symbols); } } /// /// Check if linear light intensity setup is needed /// private static void CheckLinearSetup() { if (PlayerSettings.colorSpace == UnityEngine.ColorSpace.Linear) { GraphicsSettings.lightsUseLinearIntensity = true; } else { GraphicsSettings.lightsUseLinearIntensity = false; } } } /// /// Pro utils to check for gaia pro /// public static class GaiaProUtils { #region Gaia Pro /// /// Checks if gaia pro exists /// /// public static bool IsGaiaPro() { bool isPro = false; isPro = GaiaDirectories.GetGaiaProDirectory(); #if GAIA_PRO_PRESENT isPro = true; #else isPro = false; #endif return isPro; } /// /// Checks if gaia pro exists /// /// public static bool GaiaProDefineCheck() { bool isPro = false; isPro = GaiaDirectories.GetGaiaProDirectory(); return isPro; } #endregion } }