public void CreateTexturedFog()
    {
        fogMode = CurrentFogMode.Textured;

        //Pick colour of main light
        Color mainLightColor = Color.white;

        mainLightColor = EnviroSkyMgr.instance.Components.DirectLight.GetComponent <Light>().color;

        GameObject groundFogGo = GameObject.Find("Fog Volume [Ground Fog] for Enviro");

        DestroyImmediate(groundFogGo);

        if (groundFogGo == null)
        {
            groundFogGo      = new GameObject();
            groundFogGo.name = "Fog Volume [Ground Fog] for Enviro";
            Renderer rend = groundFogGo.AddComponent <MeshRenderer>();
            if (rend != null)
            {
                rend.shadowCastingMode    = UnityEngine.Rendering.ShadowCastingMode.Off;
                rend.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off;
                rend.receiveShadows       = false;
                rend.lightProbeUsage      = UnityEngine.Rendering.LightProbeUsage.Off;
            }
            groundFogGo.AddComponent <FogVolume>();
        }

        //Adjust Fog Settings
        FogVolume fVolume = groundFogGo.GetComponent <FogVolume>();

        if (fVolume != null)
        {
            fVolume.transform.position = fogPosition;
            fVolume.fogVolumeScale     = new Vector3(EnviroSkyMgr.instance.Camera.farClipPlane, EnviroSkyMgr.instance.Camera.farClipPlane * 0.2f, EnviroSkyMgr.instance.Camera.farClipPlane);
            fVolume.FogMainColor       = Color.grey;
            fVolume.Visibility         = 800f;

            fVolume._FogType       = FogVolume.FogType.Textured;
            fVolume.EnableGradient = true;
            fVolume.bVolumeFog     = false;
            fVolume._BlendMode     = FogVolumeRenderer.BlendMode.PremultipliedTransparency;

            fVolume.EnableInscattering = true;
            fVolume.InscatteringColor  = Color.Lerp(mainLightColor, Color.black, 0.8f);
            fVolume.VolumeFogInscatteringAnisotropy = 0.59f;
            fVolume.InscatteringIntensity           = 0.07f;
            fVolume.InscatteringStartDistance       = 5f;
            fVolume.InscatteringTransitionWideness  = 300f;


            fVolume.DrawOrder  = 3;
            fVolume._PushAlpha = 1.0025f;
            fVolume._ztest     = UnityEngine.Rendering.CompareFunction.Always;

            // Assign Fog for runtime Controls
            fog = fVolume;
            CheckCamera();
        }
    }
    void Start()
    {
        if (EnviroSkyMgr.instance == null)
        {
            this.enabled = false;
            Debug.Log("Deactivated Fog Volume Integration. No EnviroSkyMgr instance in scene!");
            return;
        }
        myLight = EnviroSkyMgr.instance.Components.DirectLight.GetComponent <Light>();

        if (fog == null)
        {
            fogMode = CurrentFogMode.None;
        }
    }