/// <summary> /// set AnimationClip /// </summary> private void SetAnimationClips(ModelImporter importer, CustomModelImporterSettingValue customSettings) { var clips = importer.clipAnimations; if (clips == null) { return; } for (int i = 0; i < clips.Length; i++) { var clip = clips[i]; if (customSettings.LoopTime.IsConfigurable) { clip.loopTime = customSettings.LoopTime; } } importer.clipAnimations = clips; }
public CustomModelImporterSettingValue(CustomModelImporterSettingValue copy) { ScaleFactor = new ImporterIntValue(copy.ScaleFactor); #if UNITY_2017_1_OR_NEWER UseFileScale = new ImporterBoolValue(copy.UseFileScale); #endif MeshCompression = new ImporterMeshCompressionValue(copy.MeshCompression); ReadWriteEnabled = new ImporterBoolValue(copy.ReadWriteEnabled); OptimizeMesh = new ImporterBoolValue(copy.OptimizeMesh); ImportBlendShapes = new ImporterBoolValue(copy.ImportBlendShapes); GenerateColliders = new ImporterBoolValue(copy.GenerateColliders); KeepQuads = new ImporterBoolValue(copy.KeepQuads); #if UNITY_2017_3_OR_NEWER IndexFormat = new ImporterIndexFormatValue(copy.IndexFormat); #endif #if UNITY_5_6_OR_NEWER WeldVertics = new ImporterBoolValue(copy.WeldVertics); #endif #if UNITY_2017_1_OR_NEWER ImportVisibility = new ImporterBoolValue(copy.ImportVisibility); ImportCameras = new ImporterBoolValue(copy.ImportCameras); ImportLights = new ImporterBoolValue(copy.ImportLights); #endif #if UNITY_2017_3_OR_NEWER PreserverHierarchy = new ImporterBoolValue(copy.PreserverHierarchy); #endif SwapUVs = new ImporterBoolValue(copy.SwapUVs); GenerateLightMapUVs = new ImporterBoolValue(copy.GenerateLightMapUVs); HardAngle = new ImporterIntValue(copy.HardAngle); PackMargin = new ImporterIntValue(copy.PackMargin); AngleError = new ImporterIntValue(copy.AngleError); AreaError = new ImporterIntValue(copy.AreaError); Normals = new ImporterImportNormalsValue(copy.Normals); #if UNITY_2017_1_OR_NEWER NormalsMode = new ImporterNormalsModeValue(copy.NormalsMode); #endif SmoothingAngle = new ImporterIntValue(copy.SmoothingAngle); Tangents = new ImporterImportTangensValue(copy.Tangents); ImportMaterials = new ImporterBoolValue(copy.ImportMaterials); #if UNITY_2017_3_OR_NEWER MaterialLocation = new ImporterMaterialLocationValue(copy.MaterialLocation); #endif MaterialNaming = new ImporterMaterialNamingValue(copy.MaterialNaming); MaterialSearch = new ImporterMaterialSearchValue(copy.MaterialSearch); AnimationType = new ImporterAnimationTypeValue(copy.AnimationType); OptimizeGameObject = new ImporterBoolValue(copy.OptimizeGameObject); ImportAnimation = new ImporterBoolValue(copy.ImportAnimation); BakeAnimations = new ImporterBoolValue(copy.BakeAnimations); ResampleCurves = new ImporterBoolValue(copy.ResampleCurves); AnimCompression = new ImporterAnimCompressionValue(copy.AnimCompression); RotaionError = new ImporterFloatValue(copy.RotaionError); PositionError = new ImporterFloatValue(copy.PositionError); ScaleError = new ImporterFloatValue(copy.ScaleError); #if UNITY_2017_2_OR_NEWER AnimatedCustomProperties = new ImporterBoolValue(copy.AnimatedCustomProperties); #endif LoopTime = new ImporterBoolValue(copy.LoopTime); }
//============================================================================= // process //============================================================================= /// <summary> /// set importer /// </summary> private void ImporterCustomModel(CustomModelImporter customImporter) { if (customImporter == null || !customImporter.IsEnable) { return; } ModelImporter modelImporter = assetImporter as ModelImporter; CustomModelImporterSettingValue customSettings = customImporter.ImporterSetting; SetAnimationClips(modelImporter, customSettings); // model if (customSettings.ScaleFactor.IsConfigurable) { modelImporter.globalScale = customSettings.ScaleFactor; } #if UNITY_2017_1_OR_NEWER if (customSettings.UseFileScale.IsConfigurable) { modelImporter.useFileScale = customSettings.UseFileScale; } #endif if (customSettings.MeshCompression.IsConfigurable) { modelImporter.meshCompression = customSettings.MeshCompression; } if (customSettings.ReadWriteEnabled.IsConfigurable) { modelImporter.isReadable = customSettings.ReadWriteEnabled; } if (customSettings.OptimizeMesh.IsConfigurable) { modelImporter.optimizeMesh = customSettings.OptimizeMesh; } if (customSettings.ImportBlendShapes.IsConfigurable) { modelImporter.importBlendShapes = customSettings.ImportBlendShapes; } if (customSettings.GenerateColliders.IsConfigurable) { modelImporter.addCollider = customSettings.GenerateColliders; } #if UNITY_5_6_OR_NEWER if (customSettings.KeepQuads.IsConfigurable) { modelImporter.keepQuads = customSettings.KeepQuads; } #endif #if UNITY_2017_3_OR_NEWER if (customSettings.IndexFormat.IsConfigurable) { modelImporter.indexFormat = customSettings.IndexFormat; } #endif #if UNITY_5_6_OR_NEWER if (customSettings.WeldVertics.IsConfigurable) { modelImporter.weldVertices = customSettings.WeldVertics; } #endif #if UNITY_2017_1_OR_NEWER if (customSettings.ImportVisibility.IsConfigurable) { modelImporter.importVisibility = customSettings.ImportVisibility; } if (customSettings.ImportCameras.IsConfigurable) { modelImporter.importCameras = customSettings.ImportCameras; } if (customSettings.ImportLights.IsConfigurable) { modelImporter.importLights = customSettings.ImportLights; } #endif #if UNITY_2017_3_OR_NEWER if (customSettings.PreserverHierarchy.IsConfigurable) { modelImporter.preserveHierarchy = customSettings.PreserverHierarchy; } #endif if (customSettings.SwapUVs.IsConfigurable) { modelImporter.swapUVChannels = customSettings.SwapUVs; } if (customSettings.GenerateLightMapUVs.IsConfigurable) { modelImporter.generateSecondaryUV = customSettings.GenerateLightMapUVs; if (customSettings.GenerateLightMapUVs.Value) { if (customSettings.HardAngle.IsConfigurable) { modelImporter.secondaryUVHardAngle = customSettings.HardAngle; } if (customSettings.PackMargin.IsConfigurable) { modelImporter.secondaryUVPackMargin = customSettings.PackMargin; } if (customSettings.AngleError.IsConfigurable) { modelImporter.secondaryUVAngleDistortion = customSettings.AngleError; } if (customSettings.AreaError.IsConfigurable) { modelImporter.secondaryUVAreaDistortion = customSettings.AreaError; } } } if (customSettings.Normals.IsConfigurable) { modelImporter.importNormals = customSettings.Normals; } #if UNITY_2017_1_OR_NEWER if (customSettings.NormalsMode.IsConfigurable) { modelImporter.normalCalculationMode = customSettings.NormalsMode; } #endif if (customSettings.SmoothingAngle.IsConfigurable) { modelImporter.normalSmoothingAngle = customSettings.SmoothingAngle; } if (customSettings.Tangents.IsConfigurable) { modelImporter.importTangents = customSettings.Tangents; } // material if (customSettings.ImportMaterials.IsConfigurable) { modelImporter.importMaterials = customSettings.ImportMaterials; if (customSettings.ImportMaterials.Value) { #if UNITY_2017_3_OR_NEWER if (customSettings.MaterialLocation.IsConfigurable) { modelImporter.materialLocation = customSettings.MaterialLocation; } #endif if (customSettings.MaterialNaming.IsConfigurable) { modelImporter.materialName = customSettings.MaterialNaming; } if (customSettings.MaterialSearch.IsConfigurable) { modelImporter.materialSearch = customSettings.MaterialSearch; } } } // rig if (customSettings.AnimationType.IsConfigurable) { modelImporter.animationType = customSettings.AnimationType; } if (customSettings.OptimizeGameObject.IsConfigurable) { modelImporter.optimizeGameObjects = customSettings.OptimizeGameObject; } // animation if (customSettings.ImportAnimation.IsConfigurable) { modelImporter.importAnimation = customSettings.ImportAnimation; } //if ( customSettings.BakeAnimations.isEditable ) // modelImporter.bakeIK = customSettings.BakeAnimations; if (customSettings.ResampleCurves.IsConfigurable) { modelImporter.resampleCurves = customSettings.ResampleCurves; } if (customSettings.AnimCompression.IsConfigurable) { modelImporter.animationCompression = customSettings.AnimCompression; } if (customSettings.RotaionError.IsConfigurable) { modelImporter.animationRotationError = customSettings.RotaionError; } if (customSettings.PositionError.IsConfigurable) { modelImporter.animationPositionError = customSettings.PositionError; } if (customSettings.ScaleError.IsConfigurable) { modelImporter.animationScaleError = customSettings.ScaleError; } #if UNITY_2017_2_OR_NEWER if (customSettings.AnimatedCustomProperties.IsConfigurable) { modelImporter.importAnimatedCustomProperties = customSettings.AnimatedCustomProperties; } #endif if (customImporter.IsLogger) { Debug.Log(string.Format("CustomModelImporter:" + customImporter.Log + "\nProcessed: {0}", assetPath)); } }