Material OnAssignMaterialModel(Material material, Renderer renderer) { string[] guids = AssetDatabase.FindAssets("FBXExtractMaterialsConfig"); if (guids.Length == 0) { Debug.LogError("Please create a setting file named: 'FBXExtractMaterialsConfig'"); Debug.LogError("Extracting Materials Aborted"); } string path = AssetDatabase.GUIDToAssetPath(guids[0]); //Debug.Log("settings path" + path); _settings = (FbxExtractMaterialsSettings)AssetDatabase.LoadAssetAtPath(path, typeof(FbxExtractMaterialsSettings)); if (!_settings.Active) { return(null); } int len = assetPath.Length; var sb = new StringBuilder(); for (int i = len - 5; i > 0; i--) { if (assetPath[i] != '/') { sb.Insert(0, assetPath[i]); } else { break; } } string fileName = sb.ToString(); if (len >= 4) { // Note: Faster than method. char c0 = assetPath[len - 4], c1 = assetPath[len - 3], c2 = assetPath[len - 2], c3 = assetPath[len - 1]; if ((c0 == '.') && (c1 == 'f' || c1 == 'F') || (c2 == 'b' || c2 == 'B') || (c3 == 'x' || c3 == 'X')) { //Debug.Log(assetPath); Material newMaterial = ExtractMaterials(assetPath, fileName, material); if (newMaterial != null) { AssetDatabase.WriteImportSettingsIfDirty(assetPath); } return(newMaterial); } } return(null); }
public override void OnInspectorGUI() { FbxExtractMaterialsSettings settings = (FbxExtractMaterialsSettings)target; //base.OnInspectorGUI(); EditorGUILayout.ToggleLeft("Active", settings.Active); EditorGUILayout.Space(); if (GUILayout.Button("Choose Materials Folder")) { string path = EditorUtility.OpenFolderPanel("Choose Materials Folder", Application.dataPath, ""); if (path.StartsWith(Application.dataPath)) { path = "Assets" + path.Substring(Application.dataPath.Length); } settings.MaterialsFolder = path; } GUI.enabled = false; TextField("Folder", settings.MaterialsFolder); GUI.enabled = true; }