/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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); }