public override void ApplyDefaults() { this.RuleName = "New Model Rule"; SuffixFilter = ".FBX"; meshCompression = ModelImporterMeshCompression.Off; isReadable = false; importBlendShapes = false; optimizeMeshForGPU = true; generateColliders = false; keepQuads = false; weldVertices = true; swapUVChannels = false; generateSecondaryUV = false; normalImportMode = ModelImporterNormals.None; tangentImportMode = ModelImporterTangents.CalculateMikk; importMaterials = true; materialName = ModelImporterMaterialName.BasedOnTextureName; materialSearch = ModelImporterMaterialSearch.Everywhere; animationType = ModelImporterAnimationType.None; importAnimation = false; animCompression = ModelImporterAnimationCompression.Off; }
public ModelFolderRule(ProjectImportSettings.ModelFolderRule rule) { maxVertices = rule.maxVertices; shouldBatch = rule.shouldBatch; m_MeshCompression = rule.m_MeshCompression; m_IsReadable = rule.m_IsReadable; optimizeMeshForGPU = rule.optimizeMeshForGPU; m_ImportBlendShapes = rule.m_ImportBlendShapes; m_AddColliders = rule.m_AddColliders; keepQuads = rule.keepQuads; weldVertices = rule.weldVertices; m_ImportVisibility = rule.m_ImportVisibility; m_ImportCameras = rule.m_ImportCameras; m_ImportLights = rule.m_ImportLights; swapUVChannels = rule.swapUVChannels; generateSecondaryUV = rule.generateSecondaryUV; normalImportMode = rule.normalImportMode; tangentImportMode = rule.tangentImportMode; m_AnimationType = rule.m_AnimationType; m_LegacyGenerateAnimations = rule.m_LegacyGenerateAnimations; importAnimation = rule.importAnimation; m_AnimationCompression = rule.m_AnimationCompression; m_OptimizeGameObjects = rule.m_OptimizeGameObjects; importMaterials = rule.importMaterials; maxBones = rule.maxBones; maxBoneWeights = rule.maxBoneWeights; }
public static void SetModelImporterNormals(string path, ModelImporterNormals importNormals = ModelImporterNormals.None) { var modelImporter = GetModelImporter(path); if (modelImporter != null && modelImporter.importNormals != importNormals) { modelImporter.importNormals = importNormals; AssetDatabase.ImportAsset(path); } }
public static void setModelProp(string modelName, bool isReadable, ModelImporterNormals modelNormals, ModelImporterTangents modelTangents) { string matPath = PStr.b().a("Assets/").a(CLPathCfg.self.basePath).a("/") .a("upgradeRes4Dev").a("/other/model/").a(modelName.Replace(".", "/")).a(".FBX").e(); ModelImporter mi = ModelImporter.GetAtPath(matPath) as ModelImporter; setModelProp(mi, isReadable, modelNormals, modelTangents); doCleanModelMaterials(matPath); }
public static void setModelProp(ModelImporter mi, bool isReadable, ModelImporterNormals modelNormals, ModelImporterTangents modelTangents) { if (mi != null) { mi.importMaterials = false; mi.isReadable = isReadable; mi.importNormals = modelNormals; mi.importTangents = modelTangents; AssetDatabase.Refresh(); } }
public void ApplyDefaults() { readWriteEnabled = false; optimiseMesh = true; ImportBlendShapes = false; normalImportMode = ModelImporterNormals.Import; animationType = ModelImporterAnimationType.None; meshCompression = ModelImporterMeshCompression.Off; importMaterials = true; importTangents = ModelImporterTangents.None; changeReadableSettings = false; }
private void InitModel() { m_globalScale = 1f; m_meshCompression = ModelImporterMeshCompression.Off; m_isReadable = true; m_optimizeMesh = true; m_importBlendShapes = true; m_addCollider = false; m_swapUVChannels = false; m_importNormals = ModelImporterNormals.Import; m_importTangents = ModelImporterTangents.CalculateMikk; m_importMaterials = true; m_materialName = ModelImporterMaterialName.BasedOnTextureName; m_materialSearch = ModelImporterMaterialSearch.RecursiveUp; }
public void ApplyDefaults() { m_MeshCompression = ModelImporterMeshCompression.Off; m_IsReadable = false; m_ImportBlendShapes = false; m_AddColliders = false; keepQuads = false; m_weldVertices = true; swapUVChannels = false; generateSecondaryUV = false; normalImportMode = ModelImporterNormals.None; tangentImportMode = ModelImporterTangents.None; m_ImportMaterials = true; m_MaterialName = ModelImporterMaterialName.BasedOnMaterialName; m_MaterialSearch = ModelImporterMaterialSearch.Everywhere; AnimationType = ModelImporterAnimationType.None; ImportAnimation = false; }
private void DrawModel() { EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Meshes", EditorStyles.boldLabel); GUI.color = Color.grey; EditorGUILayout.LabelField("File Scale"); GUI.color = Color.white; m_globalScale = EditorGUILayout.FloatField("Scale Factor", m_globalScale); m_meshCompression = (ModelImporterMeshCompression)EditorGUILayout.EnumPopup("Mesh Compression", m_meshCompression); m_isReadable = EditorGUILayout.Toggle("Read/Write Enabled", m_isReadable); m_optimizeMesh = EditorGUILayout.Toggle("Optimize Mesh", m_optimizeMesh); m_importBlendShapes = EditorGUILayout.Toggle("Import BlendShapes", m_importBlendShapes); m_addCollider = EditorGUILayout.Toggle("Generate Colliders", m_addCollider); GUI.color = Color.grey; EditorGUILayout.LabelField("Keep Quads"); GUI.color = Color.white; m_swapUVChannels = EditorGUILayout.Toggle("Swap UVs", m_swapUVChannels); GUI.color = Color.grey; EditorGUILayout.LabelField("Generate Lightmap UVs"); GUI.color = Color.white; EditorGUILayout.LabelField("Normals & Tangents", EditorStyles.boldLabel); m_importNormals = (ModelImporterNormals)EditorGUILayout.EnumPopup("Normals", m_importNormals); GUI.color = Color.grey; EditorGUILayout.LabelField("Smoothing Angle"); GUI.color = Color.white; m_importTangents = (ModelImporterTangents)EditorGUILayout.EnumPopup("Tangents", m_importTangents); EditorGUILayout.LabelField("Materials", EditorStyles.boldLabel); m_importMaterials = EditorGUILayout.Toggle("Import Materials", m_importMaterials); if (m_importMaterials == true) { m_materialName = (ModelImporterMaterialName)EditorGUILayout.EnumPopup("Material Naming", m_materialName); m_materialSearch = (ModelImporterMaterialSearch)EditorGUILayout.EnumPopup("Material Search", m_materialSearch); } EditorGUILayout.EndVertical(); }
private void DisplayNormalSettings() { importerNormals = (ModelImporterNormals)EditorGUILayout.EnumPopup("Normals", importerNormals); smoothingAngle = EditorGUILayout.IntSlider("Smoothing Angle", smoothingAngle, 0, 180); importerTangents = (ModelImporterTangents)EditorGUILayout.EnumPopup("Tangents", importerTangents); }
private void DrawModelGUI() { EditorGUILayout.LabelField("Scene", EditorStyles.boldLabel); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11); GUILayout.Space(3); scaleFactor = EditorGUILayout.FloatField("Scale Factor", scaleFactor); importBlendShapes = EditorGUILayout.Toggle(AssetImportStyles.Model.ImportBlendShapes, importBlendShapes); GUILayout.Space(3); EditorGUILayout.LabelField("Meshes", EditorStyles.boldLabel); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11); GUILayout.Space(3); meshCompression = (ModelImporterMeshCompression)EditorGUILayout.EnumPopup(AssetImportStyles.Model.MeshCompressionLabel, meshCompression); isReadable = EditorGUILayout.Toggle(AssetImportStyles.Model.IsReadable, isReadable); optimizeMeshForGPU = EditorGUILayout.Toggle(AssetImportStyles.Model.OptimizeMeshForGPU, optimizeMeshForGPU); generateColliders = EditorGUILayout.Toggle(AssetImportStyles.Model.GenerateColliders, generateColliders); GUILayout.Space(5); EditorGUILayout.LabelField("Geometry", EditorStyles.boldLabel); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11); GUILayout.Space(3); using (new EditorGUI.DisabledScope(true)) { keepQuads = EditorGUILayout.Toggle(AssetImportStyles.Model.KeepQuads, keepQuads); } weldVertices = EditorGUILayout.Toggle(AssetImportStyles.Model.WeldVertices, weldVertices); GUILayout.Label(AssetImportStyles.Model.TangentSpace, EditorStyles.boldLabel, new GUILayoutOption[0]); EditorGUI.BeginChangeCheck(); normalImportMode = (ModelImporterNormals)EditorGUILayout.EnumPopup(AssetImportStyles.Model.TangentSpaceNormalLabel, normalImportMode); if (EditorGUI.EndChangeCheck()) { if (normalImportMode == ModelImporterNormals.None) { tangentImportMode = ModelImporterTangents.None; } // else if (rule.normalImportMode == ModelImporterNormals.Import) // { // rule.tangentImportMode = ModelImporterTangents.Import; // } else { tangentImportMode = ModelImporterTangents.CalculateMikk; } } using (new EditorGUI.DisabledScope(normalImportMode != ModelImporterNormals.Calculate)) { normalSmoothAngle = EditorGUILayout.Slider(AssetImportStyles.Model.SmoothingAngle, normalSmoothAngle, 0f, 180f); } GUIContent[] displayedOptions = AssetImportStyles.Model.TangentSpaceModeOptLabelsAll; ModelImporterTangents[] array = AssetImportStyles.Model.TangentSpaceModeOptEnumsAll; if (normalImportMode == ModelImporterNormals.Calculate) { displayedOptions = AssetImportStyles.Model.TangentSpaceModeOptLabelsCalculate; array = AssetImportStyles.Model.TangentSpaceModeOptEnumsCalculate; } else if (normalImportMode == ModelImporterNormals.None) { displayedOptions = AssetImportStyles.Model.TangentSpaceModeOptLabelsNone; array = AssetImportStyles.Model.TangentSpaceModeOptEnumsNone; } using (new EditorGUI.DisabledScope(normalImportMode == ModelImporterNormals.None)) { int num = Array.IndexOf(array, tangentImportMode); EditorGUI.BeginChangeCheck(); num = EditorGUILayout.Popup(AssetImportStyles.Model.TangentSpaceTangentLabel, num, displayedOptions, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { tangentImportMode = array[num]; } } swapUVChannels = EditorGUILayout.Toggle(AssetImportStyles.Model.SwapUVChannels, swapUVChannels); generateSecondaryUV = EditorGUILayout.Toggle(AssetImportStyles.Model.GenerateSecondaryUV, generateSecondaryUV); if (generateSecondaryUV) { //EditorGUI.indentLevel++; //this.m_SecondaryUVAdvancedOptions = EditorGUILayout.Foldout(this.m_SecondaryUVAdvancedOptions, // styles.GenerateSecondaryUVAdvanced, EditorStyles.foldout); //if (this.m_SecondaryUVAdvancedOptions) //{ // assetRule.secondaryUVHardAngle = EditorGUILayout.Slider(styles.secondaryUVHardAngle, // assetRule.secondaryUVHardAngle, 0f, 180f, new GUILayoutOption[0]); // assetRule.secondaryUVPackMargin = EditorGUILayout.Slider(styles.secondaryUVPackMargin, // assetRule.secondaryUVPackMargin, 0f, 180f, new GUILayoutOption[0]); // assetRule.secondaryUVAngleDistortion = EditorGUILayout.Slider(styles.secondaryUVAngleDistortion, // assetRule.secondaryUVAngleDistortion, 0f, 180f, new GUILayoutOption[0]); // assetRule.secondaryUVAreaDistortion = EditorGUILayout.Slider(styles.secondaryUVAreaDistortion, // assetRule.secondaryUVAreaDistortion, 0f, 180f, new GUILayoutOption[0]); //} //EditorGUI.indentLevel--; } }
public override void DrawInnerGUI() { DrawFilterGUI(); EditorGUILayout.LabelField("Meshes", EditorStyles.boldLabel); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11); GUILayout.Space(3); ScaleFactor = EditorGUILayout.FloatField("Scale Factor", ScaleFactor); MeshCompression = (ModelImporterMeshCompression)EditorGUILayout.EnumPopup("Mesh Compression", MeshCompression); ReadWriteEnabled = EditorGUILayout.Toggle("Read/Write Enabled", ReadWriteEnabled); OptimizeMesh = EditorGUILayout.Toggle("Optimize Mesh", OptimizeMesh); ImportBlendShapes = EditorGUILayout.Toggle("Import BlendShapes", ImportBlendShapes); GenerateColliders = EditorGUILayout.Toggle("Generate Colliders", GenerateColliders); KeepQuads = EditorGUILayout.Toggle("Keep Quads", KeepQuads); WeldVertices = EditorGUILayout.Toggle("Weld Vertices", WeldVertices); ImportVisibility = EditorGUILayout.Toggle("Import Visibility", ImportVisibility); ImportCameras = EditorGUILayout.Toggle("Import Cameras", ImportCameras); ImportLights = EditorGUILayout.Toggle("Import Lights", ImportLights); SwapUVs = EditorGUILayout.Toggle("Swap UVs", SwapUVs); GenerateLightmapUV = EditorGUILayout.Toggle("Generate Lightmap UVs", GenerateLightmapUV); if (GenerateLightmapUV) { EditorGUI.indentLevel++; LightmapHardAngle = EditorGUILayout.IntSlider("Hard Angle", LightmapHardAngle, 0, 180); LightmapPadding = EditorGUILayout.IntSlider("Pack Margin", LightmapPadding, 1, 64); LightmapAngleError = EditorGUILayout.IntSlider("Angle Error", LightmapAngleError, 1, 75); LightmapAreaError = EditorGUILayout.IntSlider("Area Error", LightmapAreaError, 1, 75); EditorGUI.indentLevel--; } GUILayout.Space(6); EditorGUILayout.LabelField("Normals & Tangent", EditorStyles.boldLabel); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11); GUILayout.Space(3); ImportNormals = (ModelImporterNormals)EditorGUILayout.EnumPopup("Normals", ImportNormals); EditorGUI.BeginDisabledGroup(ImportNormals == ModelImporterNormals.Calculate ? false : true); //NormalCalculationMode = (ModelImporterNormalCalculationMode)EditorGUILayout.EnumPopup("Normals Mode", NormalCalculationMode); SmoothingAngle = EditorGUILayout.IntSlider("Smoothing Angle", SmoothingAngle, 0, 180); EditorGUI.EndDisabledGroup(); EditorGUI.BeginDisabledGroup(ImportNormals == ModelImporterNormals.None ? true : false); TangentMode = (ModelImporterTangents)EditorGUILayout.EnumPopup("Tangents", TangentMode); EditorGUI.EndDisabledGroup(); GUILayout.Space(6); EditorGUILayout.LabelField("Materials", EditorStyles.boldLabel); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11); GUILayout.Space(3); ImportMats = EditorGUILayout.Toggle("Import Materials", ImportMats); if (ImportMats) { MaterialNaming = (ModelImporterMaterialName)EditorGUILayout.EnumPopup("Material Naming", MaterialNaming); MaterialSearch = (ModelImporterMaterialSearch)EditorGUILayout.EnumPopup("Material Search", MaterialSearch); } GUILayout.Space(6); EditorGUILayout.LabelField("Animation", EditorStyles.boldLabel); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11); GUILayout.Space(3); ImportAnim = EditorGUILayout.Toggle("Import Animation", ImportAnim); ForceNoRig = EditorGUILayout.Toggle("Force no rig", ForceNoRig); GUILayout.Space(8); }
void OnDrawOptionUI() { EditorGUILayout.LabelField("Meshes", EditorStyles.boldLabel); _scaleFactor = EditorGUILayout.FloatField("Scale Factor", _scaleFactor); _bUseFileScale = EditorGUILayout.Toggle("Use File Scale", _bUseFileScale); GUI.enabled = _bUseFileScale; _fileScale = EditorGUILayout.FloatField(" File Scale", _fileScale); GUI.enabled = true; _eMeshCompression = (ModelImporterMeshCompression)EditorGUILayout.EnumPopup("Mesh Compression", _eMeshCompression); _ReadWriteEnable = EditorGUILayout.Toggle("Read/Write Enabled", _ReadWriteEnable); _OptimizeMesh = EditorGUILayout.Toggle("Optimize Mesh", _OptimizeMesh); _ImportBlendShapes = EditorGUILayout.Toggle("Import BlendShapes", _ImportBlendShapes); _GenerateColliders = EditorGUILayout.Toggle("Generate Colliders", _GenerateColliders); _KeepQuads = EditorGUILayout.Toggle("Keep Quads", _KeepQuads); _bWeldVertices = EditorGUILayout.Toggle("Weld Vertices", _bWeldVertices); _bImportVisibility = EditorGUILayout.Toggle("Import Visibility", _bImportVisibility); _bImportCameras = EditorGUILayout.Toggle("Import Cameras", _bImportCameras); _bImportLights = EditorGUILayout.Toggle("Import Lights", _bImportLights); _SwapUVs = EditorGUILayout.Toggle("Swap UVs", _SwapUVs); _GenerateLightmapUVs = EditorGUILayout.Toggle("Generate Lightmap UVs", _GenerateLightmapUVs); if (_GenerateLightmapUVs) { _uiFolderAdvanced = EditorGUILayout.Foldout(_uiFolderAdvanced, "Advanced"); if (_uiFolderAdvanced) { _HardAngle = EditorGUILayout.IntSlider(" Hard Angle", _HardAngle, 0, 180); _PackMargin = EditorGUILayout.IntSlider(" Pack Margin", _PackMargin, 0, 180); _AngleError = EditorGUILayout.IntSlider(" Angle Error", _AngleError, 0, 180); _AreaError = EditorGUILayout.IntSlider(" Area Error", _AreaError, 0, 180); } } EditorGUILayout.LabelField("Normals & Tangents", EditorStyles.boldLabel); _eImporterNormals = (ModelImporterNormals)EditorGUILayout.EnumPopup("Normals", _eImporterNormals); GUI.enabled = _eImporterNormals == ModelImporterNormals.Calculate; _SmoothAngle = EditorGUILayout.IntSlider("Smooth Angles", _SmoothAngle, 0, 180); GUI.enabled = _eImporterNormals != ModelImporterNormals.None; _eImporterTangents = (ModelImporterTangents)EditorGUILayout.EnumPopup("Tangents", _eImporterTangents); GUI.enabled = true; EditorGUILayout.LabelField("Materials", EditorStyles.boldLabel); _ImportMaterials = EditorGUILayout.Toggle("ImportMaterials", _ImportMaterials); if (_ImportMaterials) { _eImporterMaterialName = (ModelImporterMaterialName)EditorGUILayout.Popup("Material Naming", (int)_eImporterMaterialName, _strMaterialNaming); _eImporterMaterialSearch = (ModelImporterMaterialSearch)EditorGUILayout.EnumPopup("Material Search", _eImporterMaterialSearch); } GUILayout.BeginHorizontal(); if (GUILayout.Button("Find")) { FindModelImport(); } if (GUILayout.Button("Apply")) { ApplyModelImport(); } GUILayout.EndHorizontal(); }
public static void SetModelImporterNormals(this Mesh mesh, ModelImporterNormals importNormals = ModelImporterNormals.None) { string path = AssetDatabase.GetAssetPath(mesh); SetModelImporterNormals(path, importNormals); }