コード例 #1
0
    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();
    }
コード例 #2
0
 public override void OnInspectorGUI()
 {
     base.DrawDefaultInspector();
     if (GUILayout.Button("Build Shaders (Might take some time)"))
     {
         HxVolumetricShadersUsed.ForceBuild();
     }
     //draw button to build shaders.
 }
コード例 #3
0
    // 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();
                }
            }
        }
    }