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;
            }
Example #2
0
        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;
        }
Example #3
0
    public static void SetModelImporterTangents(string path, ModelImporterTangents importTangents = ModelImporterTangents.None)
    {
        var modelImporter = GetModelImporter(path);

        if (modelImporter != null && modelImporter.importTangents != importTangents)
        {
            modelImporter.importTangents = importTangents;
            AssetDatabase.ImportAsset(path);
        }
    }
 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;
 }
Example #5
0
 public Styles()
 {
     this.NormalModeLabelsAll                = new GUIContent[] { this.NormalOptionImport, this.NormalOptionCalculate, this.NormalOptionNone };
     this.TangentSpaceModeOptLabelsAll       = new GUIContent[] { this.TangentSpaceOptionImport, this.TangentSpaceOptionCalculate, this.TangentSpaceOptionCalculateLegacy, this.TangentSpaceOptionCalculateLegacySplit, this.TangentSpaceOptionNone };
     this.TangentSpaceModeOptLabelsCalculate = new GUIContent[] { this.TangentSpaceOptionCalculate, this.TangentSpaceOptionCalculateLegacy, this.TangentSpaceOptionCalculateLegacySplit, this.TangentSpaceOptionNone };
     this.TangentSpaceModeOptLabelsNone      = new GUIContent[] { this.TangentSpaceOptionNoneNoNormals };
     ModelImporterTangents[] tangentsArray1 = new ModelImporterTangents[5];
     tangentsArray1[1] = ModelImporterTangents.CalculateMikk;
     tangentsArray1[2] = ModelImporterTangents.CalculateLegacy;
     tangentsArray1[3] = ModelImporterTangents.CalculateLegacyWithSplitTangents;
     tangentsArray1[4] = ModelImporterTangents.None;
     this.TangentSpaceModeOptEnumsAll       = tangentsArray1;
     this.TangentSpaceModeOptEnumsCalculate = new ModelImporterTangents[] { ModelImporterTangents.CalculateMikk, ModelImporterTangents.CalculateLegacy, ModelImporterTangents.CalculateLegacyWithSplitTangents, ModelImporterTangents.None };
     this.TangentSpaceModeOptEnumsNone      = new ModelImporterTangents[] { ModelImporterTangents.None };
 }
Example #6
0
        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;
    }
Example #8
0
        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();
        }
Example #9
0
 private void DisplayNormalSettings()
 {
     importerNormals  = (ModelImporterNormals)EditorGUILayout.EnumPopup("Normals", importerNormals);
     smoothingAngle   = EditorGUILayout.IntSlider("Smoothing Angle", smoothingAngle, 0, 180);
     importerTangents = (ModelImporterTangents)EditorGUILayout.EnumPopup("Tangents", importerTangents);
 }
Example #10
0
        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--;
            }
        }
Example #11
0
        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);
        }
Example #12
0
    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);
    }
Example #13
0
 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();
     }
 }
Example #14
0
        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();
        }
Example #15
0
    public static void SetModelImporterTangents(this Mesh mesh, ModelImporterTangents importTangents = ModelImporterTangents.None)
    {
        string path = AssetDatabase.GetAssetPath(mesh);

        SetModelImporterTangents(path, importTangents);
    }