static void CreateMaterial() { // Create a simple material asset GemBaseConfig config = ScriptableObject.CreateInstance <GemBaseConfig>(); Debug.Log(config); AssetDatabase.CreateAsset(config, "Assets/GemBaseConfig.asset"); // Print the path of the created asset AssetDatabase.Refresh(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); cfg = (GemBaseConfig)target; for (int i = 0; i < 6; i++) { cfg.GemMeshes[i] = AssetField <Mesh>(meshMsgs[i], cfg.GemMeshes[i]); } cfg.SphereLv1 = AssetField <Material>("球形宝石Lv1", cfg.SphereLv1); cfg.SphereLv2 = AssetField <Material>("球形宝石Lv2", cfg.SphereLv2); cfg.SphereLv3 = AssetField <Material>("球形宝石Lv3", cfg.SphereLv3); cfg.SphereLv4 = AssetField <Material>("球形宝石Lv4", cfg.SphereLv4); cfg.SphereLv5 = AssetField <Material>("球形宝石Lv5", cfg.SphereLv5); cfg.OvalLv1 = AssetField <Material>("椭球形宝石Lv1", cfg.OvalLv1); cfg.OvalLv2 = AssetField <Material>("椭球形宝石Lv2", cfg.OvalLv2); cfg.OvalLv3 = AssetField <Material>("椭球形宝石Lv3", cfg.OvalLv3); cfg.OvalLv4 = AssetField <Material>("椭球形宝石Lv4", cfg.OvalLv4); cfg.OvalLv5 = AssetField <Material>("椭球形宝石Lv5", cfg.OvalLv5); cfg.LowSquareDiamon = AssetField <Material>("粗糙的方体钻石Lv3", cfg.LowSquareDiamon); cfg.LowSphereDiamon = AssetField <Material>("粗糙的球体钻石Lv3", cfg.LowSphereDiamon); cfg.HighSquareDiamonLv4 = AssetField <Material>("精细的方体钻石Lv4", cfg.HighSquareDiamonLv4); cfg.HighSquareDiamonLv5 = AssetField <Material>("精细的方体钻石Lv5", cfg.HighSquareDiamonLv5); cfg.HighSphereDiamonLv4 = AssetField <Material>("精细的球体钻石Lv4", cfg.HighSphereDiamonLv4); cfg.HighSphereDiamonLv5 = AssetField <Material>("精细的球体钻石Lv5", cfg.HighSphereDiamonLv5); EditorGUILayout.LabelField("环境贴图路径"); cfg.evnCubeMap = AssetField <Cubemap>("", cfg.evnCubeMap); EditorGUILayout.LabelField("符文纹理设置:"); for (int i = 0; i < 5; i++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("符文[" + additiveMsgs[i] + "]纹理"); cfg.AdditiveTexs[i] = EditorGUILayout.ObjectField(cfg.AdditiveTexs[i], typeof(Texture2D), true) as Texture2D; EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("符文[" + additiveMsgs[i] + "]法线贴图"); cfg.AdditiveNormalTexs[i] = EditorGUILayout.ObjectField(cfg.AdditiveNormalTexs[i], typeof(Texture2D), true) as Texture2D; EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } for (int i = 0; i < 5; i++) { EditorGUILayout.BeginHorizontal(GUILayout.Width(50)); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("主颜色:"); cfg.Colors[i] = EditorGUILayout.ColorField(cfg.Colors[i]); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("符文颜色:"); cfg.DecalColors[i] = EditorGUILayout.ColorField(cfg.DecalColors[i]); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } //主纹理,依赖等级与颜色 EditorGUILayout.LabelField("主纹理贴图:"); for (int lv = 0; lv < 5; lv++) { EditorGUILayout.LabelField("等级" + (lv + 1) + ":"); EditorGUILayout.BeginHorizontal();// (GUILayout.Width(50)); for (int i = 0; i < 5; i++) { cfg.BaseTexs[lv * 5 + i] = EditorGUILayout.ObjectField(cfg.BaseTexs[lv * 5 + i], typeof(Texture2D), true) as Texture2D; } EditorGUILayout.EndHorizontal(); } EditorGUILayout.LabelField("展示设置:"); cfg.tilespace = EditorGUILayout.Vector2Field("每个Tile的间隔", cfg.tilespace); cfg.cellspace = EditorGUILayout.Vector2Field("每个Cell的间隔", cfg.cellspace); cfg.isColDependParticle = EditorGUILayout.Toggle("颜色是否依赖特效:", cfg.isColDependParticle); if (!cfg.isColDependParticle) { for (int i = 0; i < 5; i++) { cfg.PrefabInstances[i] = AssetField <GameObject>("等级【" + (i + 1) + "】预置体:", cfg.PrefabInstances[i]); } } else { cfg.PrefabInstances_Particle[0] = AssetField <GameObject>("等级1预置体:", cfg.PrefabInstances_Particle[0]); cfg.PrefabInstances_Particle[1] = AssetField <GameObject>("等级2预置体:", cfg.PrefabInstances_Particle[1]); for (int l = 0; l < 3; l++) { for (int i = 0; i < 5; i++) { cfg.PrefabInstances_Particle[l * 5 + i + 2] = AssetField <GameObject>("等级" + (l + 1 + 2) + "颜色【" + (i + 1) + "】预置体:", cfg.PrefabInstances_Particle[l * 5 + i + 2]); } } } cfg.materialsPath = EditorGUILayout.TextField("材质球生成路径:", cfg.materialsPath); EditorUtility.SetDirty(cfg); //AssetDatabase.SaveAssets(); //Debug.Log(Application.dataPath + cfg.materialsPath.Remove(0, 6)); if (Directory.Exists(Application.dataPath + cfg.materialsPath.Remove(0, 6)) == false) { EditorGUILayout.HelpBox("材质球路径不存在!", MessageType.Error); return; } int r = cfg.CheckConfig(); if (cfg.CheckConfig() > 0) { if (GUILayout.Button("一键生成")) { BuildGems(); } } else { EditorGUILayout.HelpBox("宝石系统的配置没配好,请先处理!!: r= " + r, MessageType.Error); return; } if (GUILayout.Button("清除材质球")) { Debug.Log("generatedMats : " + generatedMats.Count); for (int i = 0; i < generatedMats.Count; i++) { AssetDatabase.DeleteAsset(generatedMats[i]); } AssetDatabase.Refresh(); } }