static public void ForceBuild() { if (instance == null) { instance = AssetDatabase.LoadAssetAtPath("Assets/Plugins/HxVolumetricLighting/Resources/HxUsedShaders.prefab", typeof(HxVolumetricShadersUsed)) as HxVolumetricShadersUsed; if (instance == null) { instance = ScriptableObject.CreateInstance <HxVolumetricShadersUsed>(); AssetDatabase.CreateAsset(instance, "Assets/Plugins/HxVolumetricLighting/Resources/HxUsedShaders.prefab"); AssetDatabase.SaveAssets(); // instance = AssetDatabase.LoadAssetAtPath("Assets/Plugins/HxVolumetricLighting/HxUsedShaders.prefab", typeof(HxVolumetricShadersUsed)) as GameObject; } } instance.CheckDirty(); if (instance.LastDensityParticleQuality != instance.DensityParticleQuality || instance.LastTransperencyQuality != instance.TransperencyQuality) { instance.RebuildQualityFile(); instance.LastDensityParticleQuality = instance.DensityParticleQuality; instance.LastTransperencyQuality = instance.TransperencyQuality; HxVolumetricCamera.TransparencyBufferDepth = instance.LastTransperencyQuality; HxVolumetricCamera.DensityBufferDepth = instance.LastDensityParticleQuality; } instance.BuildShaders(); }
public override void OnInspectorGUI() { base.DrawDefaultInspector(); if (GUILayout.Button("Build Shaders (Might take some time)")) { HxVolumetricShadersUsed.ForceBuild(); } //draw button to build shaders. }
// public List<Material> PointMaterials = new List<Material>(); // public List<Material> SpotMaterials = new List<Material>(); // public List<Material> DirectionMaterials = new List<Material>(); #if UNITY_EDITOR public static void SetVolumetricValues(bool full, bool lowRes, bool heightFog, bool heightFogOff, bool noise, bool noiseOff, bool transparency, bool transparencyOff, bool densityParticles, bool point, bool spot, bool directional, bool singlePass, bool projector) { if (!BuildPipeline.isBuildingPlayer) { if (instance == null) { instance = AssetDatabase.LoadAssetAtPath("Assets/Plugins/HxVolumetricLighting/Resources/HxUsedShaders.prefab", typeof(HxVolumetricShadersUsed)) as HxVolumetricShadersUsed; if (instance == null) { instance = ScriptableObject.CreateInstance <HxVolumetricShadersUsed>(); AssetDatabase.CreateAsset(instance, "Assets/Plugins/HxVolumetricLighting/Resources/HxUsedShaders.prefab"); AssetDatabase.SaveAssets(); // instance = AssetDatabase.LoadAssetAtPath("Assets/Plugins/HxVolumetricLighting/HxUsedShaders.prefab", typeof(HxVolumetricShadersUsed)) as GameObject; } } if (instance != null) { if (full) { instance.Full = full; } if (lowRes) { instance.LowRes = lowRes; } if (heightFog) { instance.HeightFog = heightFog; } if (heightFogOff) { instance.HeightFogOff = heightFogOff; } if (noise) { instance.Noise = noise; } if (noiseOff) { instance.NoiseOff = noiseOff; } if (transparency) { instance.Transparency = transparency; } if (transparencyOff) { instance.TransparencyOff = transparencyOff; } if (densityParticles) { instance.DensityParticles = densityParticles; } if (point) { instance.Point = point; } if (spot) { instance.Spot = spot; } if (directional) { instance.Directional = directional; } if (singlePass) { instance.SinglePassStereo = singlePass; } if (projector) { instance.Projector = projector; } if (instance.CheckDirty()) { instance.BuildShaders(); } } } }