Пример #1
0
        public void DrawGUI(IMeshCombinerSetting 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 == LightmapOptions.preserve_current_lightmapping)
            {
                if (MeshBakerUtility.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 == 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 == 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();
        }
Пример #2
0
 void _CopySettings(IMeshCombinerSetting src, IMeshCombinerSetting targ)
 {
     targ.clearBuffersAfterBake = src.clearBuffersAfterBake;
     targ.doBlendShapes         = src.doBlendShapes;
     targ.doCol                         = src.doCol;
     targ.doNorm                        = src.doNorm;
     targ.doTan                         = src.doTan;
     targ.doUV                          = src.doUV;
     targ.doUV3                         = src.doUV3;
     targ.doUV4                         = src.doUV4;
     targ.optimizeAfterBake             = src.optimizeAfterBake;
     targ.recenterVertsToBoundsCenter   = src.recenterVertsToBoundsCenter;
     targ.lightmapOption                = src.lightmapOption;
     targ.renderType                    = src.renderType;
     targ.uv2UnwrappingParamsHardAngle  = src.uv2UnwrappingParamsHardAngle;
     targ.uv2UnwrappingParamsPackMargin = src.uv2UnwrappingParamsPackMargin;
 }