static void CreateFaceData() { string path = "Assets/BundleRes/Config/FaceData.asset"; if (!File.Exists(path)) { FaceData fd = ScriptableObject.CreateInstance <FaceData>(); CommonAssets.CreateAsset <FaceData>("Assets/BundleRes/Config", "FaceData", ".asset", fd); } }
public static void CreateDummyMat(string name, Shader shader, BlendMode blendMode, KeywordFlags keyWord, bool enableLightMap, bool enableShadow) { if (shader != null) { Material mat = new Material(shader); RefeshMat(mat, blendMode, keyWord, enableLightMap, enableShadow); CommonAssets.CreateAsset <Material>(string.Format("{0}/{1}", AssetsConfig.GlobalAssetsConfig.ResourcePath, AssetsConfig.GlobalAssetsConfig.DummyMatFolder), name, ".mat", mat); } }
internal static void ExtractMaterialsFromAsset(ModelImporter modelImporter, string destinationPath) { SerializedObject serializedObject = new UnityEditor.SerializedObject(modelImporter); SerializedProperty materials = serializedObject.FindProperty("m_Materials"); for (int i = 0; i < materials.arraySize; ++i) { SerializedProperty arrayElementAtIndex = materials.GetArrayElementAtIndex(i); string stringValue = arrayElementAtIndex.FindPropertyRelative("name").stringValue; Material mat = null; for (int j = 0; j < AssetsConfig.GlobalAssetsConfig.MaterialShaderMap.Length; j += 2) { string keys = AssetsConfig.GlobalAssetsConfig.MaterialShaderMap[j]; string value = AssetsConfig.GlobalAssetsConfig.MaterialShaderMap[j + 1]; if (string.IsNullOrEmpty(keys)) { mat = new Material(Shader.Find(value)); } else { string[] keysList = keys.Split('|'); foreach (string key in keysList) { if (stringValue.EndsWith(key)) { mat = new Material(Shader.Find(value)); break; } } } } if (mat != null) { mat.name = stringValue; Material newMat = AssetDatabase.LoadAssetAtPath <Material>(string.Format("{0}/{1}.mat", destinationPath, stringValue)); if (newMat != null) { newMat.shader = mat.shader; } else { newMat = CommonAssets.CreateAsset <Material>(destinationPath, stringValue, ".mat", mat); } ClearMat(newMat); if (newMat != mat) { Object.DestroyImmediate(mat); } } } }