コード例 #1
0
        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);
            }
        }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        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);
                    }
                }
            }
        }