///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    void SkyTypeCH(List <MaterialProperty> allProps)
    {
        //--------------

        EditorGUILayout.LabelField("Sky Type:", EditorStyles.boldLabel);
        DrawUILine(smLineColor, 1, smLinePadding);

        //--------------

        skyTypes = new DSKYType[targets.Length];

        for (int i = 0; i < targets.Length; ++i)
        {
            skyTypes[i] = DSKYType.Cloud1;
            for (int j = 0; j < DSKYGTypeString.Length; ++j)
            {
                if (((Material)targets[i]).shaderKeywords.Contains(DSKYGTypeString[j]))
                {
                    skyTypes[i] = (DSKYType)j;
                    break;
                }
            }
        }

        //--------------

        DSKYType setSkyType = (DSKYType)EditorGUILayout.EnumPopup("Sky Type", skyTypes[0]);

        if (EditorGUI.EndChangeCheck())
        {
            foreach (Material m in targets.Cast <Material>())
            {
                for (int i = 0; i < DSKYGTypeString.Length; ++i)
                {
                    m.DisableKeyword(DSKYGTypeString[i]);
                }
                m.EnableKeyword(DSKYGTypeString[(int)setSkyType]);
                m.renderQueue = renderQueueOffset(setSkyType) ? (int)UnityEngine.Rendering.RenderQueue.Geometry + 502 : (int)UnityEngine.Rendering.RenderQueue.Geometry + 501;
            }
        }

        EditorGUI.showMixedValue = false;

        //--------------

        DrawUILine(bgLineColor, 2, bgLinePadding);

        //--------------
    }
 bool renderQueueOffset(DSKYType skyType)
 {
     return(skyType == DSKYType.Horizon);
 }