public void DrawGUI(MB_IMeshBakerSettings momm, bool settingsEnabled) { EditorGUILayout.BeginVertical(editorStyles.editorBoxBackgroundStyle); GUI.enabled = settingsEnabled; EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doNorm, gc_doNormGUIContent); EditorGUILayout.PropertyField(doTan, gc_doTanGUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doUV, gc_doUVGUIContent); EditorGUILayout.PropertyField(doUV3, gc_doUV3GUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doUV4, gc_doUV4GUIContent); EditorGUILayout.PropertyField(doCol, gc_doColGUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(doBlendShapes, gc_doBlendShapeGUIContent); if (momm.lightmapOption == MB2_LightmapOptions.preserve_current_lightmapping) { if (MBVersion.GetMajorVersion() == 5) { EditorGUILayout.HelpBox("The best choice for Unity 5 is to Ignore_UV2 or Generate_New_UV2 layout. Unity's baked GI will create the UV2 layout it wants. See manual for more information.", MessageType.Warning); } } if (momm.lightmapOption == MB2_LightmapOptions.generate_new_UV2_layout) { EditorGUILayout.HelpBox("Generating new lightmap UVs can split vertices which can push the number of vertices over the 64k limit.", MessageType.Warning); } EditorGUILayout.PropertyField(lightmappingOption, gc_lightmappingOptionGUIContent); if (momm.lightmapOption == MB2_LightmapOptions.generate_new_UV2_layout) { EditorGUILayout.PropertyField(uv2OutputParamsHardAngle, gc_uv2HardAngleGUIContent); EditorGUILayout.PropertyField(uv2OutputParamsPackingMargin, gc_uv2PackingMarginUV3GUIContent); EditorGUILayout.Separator(); } EditorGUILayout.PropertyField(renderType, gc_renderTypeGUIContent); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(clearBuffersAfterBake, gc_clearBuffersAfterBakeGUIContent); EditorGUILayout.PropertyField(centerMeshToBoundsCenter, gc_CenterMeshToBoundsCenter); EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(optimizeAfterBake, gc_OptimizeAfterBake); GUI.enabled = true; EditorGUILayout.EndVertical(); }
public void DrawGUI(MB_IMeshBakerSettings momm, bool settingsEnabled, bool doingTextureArrays) { EditorGUILayout.BeginVertical(editorStyles.editorBoxBackgroundStyle); GUI.enabled = settingsEnabled; EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doNorm, gc_doNormGUIContent); EditorGUILayout.PropertyField(doTan, gc_doTanGUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doUV, gc_doUVGUIContent); EditorGUILayout.PropertyField(doUV3, gc_doUV3GUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doUV4, gc_doUV4GUIContent); EditorGUILayout.PropertyField(doUV5, gc_doUV5GUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doUV6, gc_doUV6GUIContent); EditorGUILayout.PropertyField(doUV7, gc_doUV7GUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(doUV8, gc_doUV8GUIContent); EditorGUILayout.PropertyField(doCol, gc_doColGUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(doBlendShapes, gc_doBlendShapeGUIContent); if (momm.lightmapOption == MB2_LightmapOptions.preserve_current_lightmapping) { if (MBVersion.GetMajorVersion() == 5) { EditorGUILayout.HelpBox("The best choice for Unity 5 is to Ignore_UV2 or Generate_New_UV2 layout. Unity's baked GI will create the UV2 layout it wants. See manual for more information.", MessageType.Warning); } } if (momm.lightmapOption == MB2_LightmapOptions.generate_new_UV2_layout) { EditorGUILayout.HelpBox("Generating new lightmap UVs can split vertices which can push the number of vertices over the 64k limit.", MessageType.Warning); } EditorGUILayout.PropertyField(lightmappingOption, gc_lightmappingOptionGUIContent); if (momm.lightmapOption == MB2_LightmapOptions.generate_new_UV2_layout) { EditorGUILayout.PropertyField(uv2OutputParamsHardAngle, gc_uv2HardAngleGUIContent); EditorGUILayout.PropertyField(uv2OutputParamsPackingMargin, gc_uv2PackingMarginUV3GUIContent); EditorGUILayout.Separator(); } UnityEngine.Object obj = null; obj = assignToMeshCustomizer.objectReferenceValue; EditorGUILayout.PropertyField(renderType, gc_renderTypeGUIContent); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(clearBuffersAfterBake, gc_clearBuffersAfterBakeGUIContent); EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(pivotLocationType, gc_PivotLocationType); if (pivotLocationType.enumValueIndex == (int)MB_MeshPivotLocation.customLocation) { EditorGUILayout.PropertyField(pivotLocation, gc_PivotLocation); } EditorGUILayout.PropertyField(optimizeAfterBake, gc_OptimizeAfterBake); EditorGUILayout.Space(); EditorGUILayout.LabelField("Advanced", EditorStyles.boldLabel); // Don't use a PropertyField because we may not be able to use the assigned object. It may not implement requried interface. if (doingTextureArrays && assignToMeshCustomizer.objectReferenceValue == null) { EditorGUILayout.HelpBox("The Textures were baked into Texture Arrays. You probaly need to a customizer here" + " to embed the slice index in the mesh. You can use one of the included customizers or write your own. " + "See the example customizers in MeshBaker/Scripts/AssignToMeshCustomizers.", MessageType.Error); } obj = EditorGUILayout.ObjectField(gc_AssignMeshCusomizer, obj, typeof(UnityEngine.Object), true); if (obj == null || !(obj is IAssignToMeshCustomizer)) { assignToMeshCustomizer.objectReferenceValue = null; } else { assignToMeshCustomizer.objectReferenceValue = obj; } GUI.enabled = true; EditorGUILayout.EndVertical(); }