void BillboardCreator(){ EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal("box"); GUILayout.Label("BillBoard Prefab Name", EditorStyles.boldLabel); PrefabName=GUILayout.TextField (PrefabName, 25, GUILayout.Width(155)); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); CreationBB =(CreaType) EditorGUILayout.EnumPopup ("New Billboard Type", CreationBB, GUILayout.Width(340)); if (CreationBB == CreaType.Custom){ GUILayout.Label("Billboard Meshes", EditorStyles.boldLabel); BillMesh= (Mesh)EditorGUILayout.ObjectField("Mesh", BillMesh, typeof(Mesh),false); } EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("BillBoard Setup", EditorStyles.boldLabel, GUILayout.Width(223)); GUILayout.Label("MainTex", EditorStyles.boldLabel, GUILayout.Width(68)); GUILayout.Label("Bump", EditorStyles.boldLabel, GUILayout.Width(60)); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("BillBoard Shader", GUILayout.Width(103)); ShaderLOD1S =(LODShaderStatus) EditorGUILayout.EnumPopup (ShaderLOD1S, GUILayout.Width(95)); GUILayout.EndHorizontal(); EditorGUILayout.Space(); if (ShaderLOD1S == LODShaderStatus.New) LOD1S= (Shader)EditorGUILayout.ObjectField(LOD1S, typeof(Shader),true, GUILayout.MaxWidth(220)); else LOD1Material= (Material)EditorGUILayout.ObjectField(LOD1Material, typeof(Material),false, GUILayout.MaxWidth(220)); GUILayout.EndVertical(); if (LOD1S) LOD1Material = new Material (Shader.Find (LOD1S.name)); if (LOD1Material && LOD1Material.HasProperty("_MainTex")){ if (LOD1Material.GetTexture("_MainTex")) LOD1T = LOD1Material.GetTexture("_MainTex"); LOD1T=EditorGUILayout.ObjectField(LOD1T, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; if (LOD1Material && LOD1Material.HasProperty("_BumpMap")){ if (LOD1Material.GetTexture("_BumpMap")) LOD1B = LOD1Material.GetTexture("_BumpMap"); LOD1B=EditorGUILayout.ObjectField(LOD1B, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("CONSTRUCT", GUILayout.Width(100), GUILayout.Height(30))) { if (PrefabName != "" && LOD1Material) CreatePrefabBB(); else EditorUtility.DisplayDialog("T4M Message", "You must complete the formulary before make the construct", "OK"); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); }
void LODObjectC() { EditorGUILayout.Space(); GUILayout.BeginHorizontal("box"); GUILayout.Label("LOD Prefab Name", EditorStyles.boldLabel); T4MCache.PrefabName = GUILayout.TextField(T4MCache.PrefabName, 25, GUILayout.Width(155)); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.Label("LOD Meshes", EditorStyles.boldLabel); LOD1 = (Mesh)EditorGUILayout.ObjectField("LOD1 : Close", LOD1, typeof(Mesh), false); LOD2 = (Mesh)EditorGUILayout.ObjectField("LOD2 : Medium", LOD2, typeof(Mesh), false); LOD3 = (Mesh)EditorGUILayout.ObjectField("LOD3 : Far", LOD3, typeof(Mesh), false); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD1 Setup", EditorStyles.boldLabel, GUILayout.Width(223)); GUILayout.Label("MainTex", EditorStyles.boldLabel, GUILayout.Width(68)); GUILayout.Label("Bump", EditorStyles.boldLabel, GUILayout.Width(60)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Place the MeshCollider on this LOD", GUILayout.Width(205)); CheckLOD1Collider = EditorGUILayout.Toggle(CheckLOD1Collider, GUILayout.Width(15)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD1 Shader", GUILayout.Width(103)); T4MCache.ShaderLOD1S = (LODShaderStatus)EditorGUILayout.EnumPopup(T4MCache.ShaderLOD1S, GUILayout.Width(95)); GUILayout.EndHorizontal(); if (T4MCache.ShaderLOD1S == LODShaderStatus.New) { T4MCache.LOD1S = (Shader)EditorGUILayout.ObjectField(T4MCache.LOD1S, typeof(Shader), true, GUILayout.MaxWidth(220)); } else { T4MCache.LOD1Material = (Material)EditorGUILayout.ObjectField(T4MCache.LOD1Material, typeof(Material), false, GUILayout.MaxWidth(220)); } GUILayout.EndVertical(); if (T4MCache.LOD1S) { T4MCache.LOD1Material = new Material(Shader.Find(T4MCache.LOD1S.name)); } if (T4MCache.LOD1Material && T4MCache.LOD1Material.HasProperty("_MainTex")) { if (T4MCache.LOD1Material.GetTexture("_MainTex")) { T4MCache.LOD1T = T4MCache.LOD1Material.GetTexture("_MainTex"); } T4MCache.LOD1T = EditorGUILayout.ObjectField(T4MCache.LOD1T, typeof(Texture), false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; if (T4MCache.LOD1Material && T4MCache.LOD1Material.HasProperty("_BumpMap")) { if (T4MCache.LOD1Material.GetTexture("_BumpMap")) { T4MCache.LOD1B = T4MCache.LOD1Material.GetTexture("_BumpMap"); } T4MCache.LOD1B = EditorGUILayout.ObjectField(T4MCache.LOD1B, typeof(Texture), false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD2 Setup", EditorStyles.boldLabel, GUILayout.Width(223)); GUILayout.Label("MainTex", EditorStyles.boldLabel, GUILayout.Width(68)); GUILayout.Label("Bump", EditorStyles.boldLabel, GUILayout.Width(60)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Place the MeshCollider on this LOD", GUILayout.Width(205)); CheckLOD2Collider = EditorGUILayout.Toggle(CheckLOD2Collider, GUILayout.Width(15)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD2 Shader", GUILayout.Width(103)); T4MCache.ShaderLOD2S = (LODShaderStatus)EditorGUILayout.EnumPopup(T4MCache.ShaderLOD2S, GUILayout.Width(95)); GUILayout.EndHorizontal(); if (T4MCache.ShaderLOD2S == LODShaderStatus.New) { T4MCache.LOD2S = (Shader)EditorGUILayout.ObjectField(T4MCache.LOD2S, typeof(Shader), false, GUILayout.MaxWidth(220)); } else { T4MCache.LOD2Material = (Material)EditorGUILayout.ObjectField(T4MCache.LOD2Material, typeof(Material), false, GUILayout.MaxWidth(220)); } GUILayout.EndVertical(); if (T4MCache.LOD2S) { T4MCache.LOD2Material = new Material(Shader.Find(T4MCache.LOD2S.name)); } if (T4MCache.LOD2Material && T4MCache.LOD2Material.HasProperty("_MainTex")) { if (T4MCache.LOD2Material.GetTexture("_MainTex")) { T4MCache.LOD2T = T4MCache.LOD2Material.GetTexture("_MainTex"); } T4MCache.LOD2T = EditorGUILayout.ObjectField(T4MCache.LOD2T, typeof(Texture), false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; if (T4MCache.LOD2Material && T4MCache.LOD2Material.HasProperty("_BumpMap")) { if (T4MCache.LOD2Material.GetTexture("_BumpMap")) { T4MCache.LOD2B = T4MCache.LOD2Material.GetTexture("_BumpMap"); } T4MCache.LOD2B = EditorGUILayout.ObjectField(T4MCache.LOD2B, typeof(Texture), false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD3 Setup", EditorStyles.boldLabel, GUILayout.Width(223)); GUILayout.Label("MainTex", EditorStyles.boldLabel, GUILayout.Width(68)); GUILayout.Label("Bump", EditorStyles.boldLabel, GUILayout.Width(60)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Place the MeshCollider on this LOD", GUILayout.Width(205)); CheckLOD3Collider = EditorGUILayout.Toggle(CheckLOD3Collider, GUILayout.Width(15)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD3 Shader", GUILayout.Width(103)); T4MCache.ShaderLOD3S = (LODShaderStatus)EditorGUILayout.EnumPopup(T4MCache.ShaderLOD3S, GUILayout.Width(95)); GUILayout.EndHorizontal(); if (T4MCache.ShaderLOD3S == LODShaderStatus.New) { T4MCache.LOD3S = (Shader)EditorGUILayout.ObjectField(T4MCache.LOD3S, typeof(Shader), false, GUILayout.MaxWidth(220)); } else { T4MCache.LOD3Material = (Material)EditorGUILayout.ObjectField(T4MCache.LOD3Material, typeof(Material), false, GUILayout.MaxWidth(220)); } GUILayout.EndVertical(); if (T4MCache.LOD3S) { T4MCache.LOD3Material = new Material(Shader.Find(T4MCache.LOD3S.name)); } if (T4MCache.LOD3Material && T4MCache.LOD3Material.HasProperty("_MainTex")) { if (T4MCache.LOD3Material.GetTexture("_MainTex")) { T4MCache.LOD3T = T4MCache.LOD3Material.GetTexture("_MainTex"); } T4MCache.LOD3T = EditorGUILayout.ObjectField(T4MCache.LOD3T, typeof(Texture), false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; if (T4MCache.LOD3Material && T4MCache.LOD3Material.HasProperty("_BumpMap")) { if (T4MCache.LOD3Material.GetTexture("_BumpMap")) { T4MCache.LOD3B = T4MCache.LOD3Material.GetTexture("_BumpMap"); } T4MCache.LOD3B = EditorGUILayout.ObjectField(T4MCache.LOD3B, typeof(Texture), false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("CONSTRUCT", GUILayout.Width(100), GUILayout.Height(30))) { if (T4MCache.PrefabName != "" && LOD1 && LOD2 && LOD3 && T4MCache.LOD1Material && T4MCache.LOD2Material && T4MCache.LOD3Material) { CreatePrefab(); } else { EditorUtility.DisplayDialog("T4M Message", "You must complete the formulary before make the construct", "OK"); } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); if (CheckLOD1Collider == true && CheckStatus != "LOD1") { CheckStatus = "LOD1"; CheckLOD2Collider = false; CheckLOD3Collider = false; } if (CheckLOD2Collider == true && CheckStatus != "LOD2") { CheckStatus = "LOD2"; CheckLOD1Collider = false; CheckLOD3Collider = false; } if (CheckLOD3Collider == true && CheckStatus != "LOD3") { CheckStatus = "LOD3"; CheckLOD1Collider = false; CheckLOD2Collider = false; } if (OldShaderLOD1S != T4MCache.ShaderLOD1S) { T4MCache.LOD1B = null; T4MCache.LOD1T = null; T4MCache.LOD1Material = null; T4MCache.LOD1S = null; OldShaderLOD1S = T4MCache.ShaderLOD1S; } if (OldShaderLOD2S != T4MCache.ShaderLOD2S) { T4MCache.LOD2B = null; T4MCache.LOD2T = null; T4MCache.LOD2Material = null; T4MCache.LOD2S = null; OldShaderLOD2S = T4MCache.ShaderLOD2S; } if (OldShaderLOD3S != T4MCache.ShaderLOD3S) { T4MCache.LOD3B = null; T4MCache.LOD3T = null; T4MCache.LOD3Material = null; T4MCache.LOD3S = null; OldShaderLOD3S = T4MCache.ShaderLOD3S; } }
void LODObjectC() { EditorGUILayout.Space(); GUILayout.BeginHorizontal("box"); GUILayout.Label("LOD Prefab Name", EditorStyles.boldLabel); PrefabName=GUILayout.TextField (PrefabName, 25, GUILayout.Width(155)); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.Label("LOD Meshes", EditorStyles.boldLabel); LOD1= (Mesh)EditorGUILayout.ObjectField("LOD1 : Close", LOD1, typeof(Mesh),false); LOD2= (Mesh)EditorGUILayout.ObjectField("LOD2 : Medium",LOD2, typeof(Mesh),false); LOD3= (Mesh)EditorGUILayout.ObjectField("LOD3 : Far",LOD3, typeof(Mesh),false); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD1 Setup", EditorStyles.boldLabel, GUILayout.Width(223)); GUILayout.Label("MainTex", EditorStyles.boldLabel, GUILayout.Width(68)); GUILayout.Label("Bump", EditorStyles.boldLabel, GUILayout.Width(60)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Place the MeshCollider on this LOD", GUILayout.Width(205)); CheckLOD1Collider = EditorGUILayout.Toggle(CheckLOD1Collider, GUILayout.Width(15)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD1 Shader", GUILayout.Width(103)); ShaderLOD1S =(LODShaderStatus) EditorGUILayout.EnumPopup (ShaderLOD1S, GUILayout.Width(95)); GUILayout.EndHorizontal(); if (ShaderLOD1S == LODShaderStatus.New) LOD1S= (Shader)EditorGUILayout.ObjectField(LOD1S, typeof(Shader),true, GUILayout.MaxWidth(220)); else LOD1Material= (Material)EditorGUILayout.ObjectField(LOD1Material, typeof(Material),false, GUILayout.MaxWidth(220)); GUILayout.EndVertical(); if (LOD1S) LOD1Material = new Material (Shader.Find (LOD1S.name)); if (LOD1Material && LOD1Material.HasProperty("_MainTex")){ if (LOD1Material.GetTexture("_MainTex")) LOD1T = LOD1Material.GetTexture("_MainTex"); LOD1T=EditorGUILayout.ObjectField(LOD1T, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; if (LOD1Material && LOD1Material.HasProperty("_BumpMap")){ if (LOD1Material.GetTexture("_BumpMap")) LOD1B = LOD1Material.GetTexture("_BumpMap"); LOD1B=EditorGUILayout.ObjectField(LOD1B, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD2 Setup", EditorStyles.boldLabel, GUILayout.Width(223)); GUILayout.Label("MainTex", EditorStyles.boldLabel, GUILayout.Width(68)); GUILayout.Label("Bump", EditorStyles.boldLabel, GUILayout.Width(60)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Place the MeshCollider on this LOD", GUILayout.Width(205)); CheckLOD2Collider = EditorGUILayout.Toggle(CheckLOD2Collider, GUILayout.Width(15)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD2 Shader", GUILayout.Width(103)); ShaderLOD2S =(LODShaderStatus) EditorGUILayout.EnumPopup (ShaderLOD2S, GUILayout.Width(95)); GUILayout.EndHorizontal(); if (ShaderLOD2S == LODShaderStatus.New) LOD2S= (Shader)EditorGUILayout.ObjectField(LOD2S, typeof(Shader),false, GUILayout.MaxWidth(220)); else LOD2Material= (Material)EditorGUILayout.ObjectField(LOD2Material, typeof(Material),false, GUILayout.MaxWidth(220)); GUILayout.EndVertical(); if (LOD2S) LOD2Material = new Material (Shader.Find (LOD2S.name)); if (LOD2Material && LOD2Material.HasProperty("_MainTex")){ if (LOD2Material.GetTexture("_MainTex")) LOD2T = LOD2Material.GetTexture("_MainTex"); LOD2T=EditorGUILayout.ObjectField(LOD2T, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; if (LOD2Material && LOD2Material.HasProperty("_BumpMap")){ if (LOD2Material.GetTexture("_BumpMap")) LOD2B = LOD2Material.GetTexture("_BumpMap"); LOD2B=EditorGUILayout.ObjectField(LOD2B, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD3 Setup", EditorStyles.boldLabel, GUILayout.Width(223)); GUILayout.Label("MainTex", EditorStyles.boldLabel, GUILayout.Width(68)); GUILayout.Label("Bump", EditorStyles.boldLabel, GUILayout.Width(60)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Place the MeshCollider on this LOD", GUILayout.Width(205)); CheckLOD3Collider = EditorGUILayout.Toggle(CheckLOD3Collider, GUILayout.Width(15)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LOD3 Shader", GUILayout.Width(103)); ShaderLOD3S =(LODShaderStatus) EditorGUILayout.EnumPopup (ShaderLOD3S, GUILayout.Width(95)); GUILayout.EndHorizontal(); if (ShaderLOD3S == LODShaderStatus.New) LOD3S= (Shader)EditorGUILayout.ObjectField(LOD3S, typeof(Shader),false, GUILayout.MaxWidth(220)); else LOD3Material= (Material)EditorGUILayout.ObjectField(LOD3Material, typeof(Material),false, GUILayout.MaxWidth(220)); GUILayout.EndVertical(); if (LOD3S) LOD3Material = new Material (Shader.Find (LOD3S.name)); if (LOD3Material && LOD3Material.HasProperty("_MainTex")){ if (LOD3Material.GetTexture("_MainTex")) LOD3T = LOD3Material.GetTexture("_MainTex"); LOD3T=EditorGUILayout.ObjectField(LOD3T, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; if (LOD3Material && LOD3Material.HasProperty("_BumpMap")){ if (LOD3Material.GetTexture("_BumpMap")) LOD3B = LOD3Material.GetTexture("_BumpMap"); LOD3B=EditorGUILayout.ObjectField(LOD3B, typeof(Texture),false, GUILayout.Width(60), GUILayout.Height(60)) as Texture; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("CONSTRUCT", GUILayout.Width(100), GUILayout.Height(30))) { if (PrefabName != "" && LOD1 && LOD2 && LOD3 && LOD1Material && LOD2Material && LOD3Material) CreatePrefab(); else EditorUtility.DisplayDialog("T4M Message", "You must complete the formulary before make the construct", "OK"); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); if (CheckLOD1Collider == true && CheckStatus !="LOD1"){ CheckStatus ="LOD1"; CheckLOD2Collider = false; CheckLOD3Collider = false; } if (CheckLOD2Collider == true && CheckStatus !="LOD2") { CheckStatus ="LOD2"; CheckLOD1Collider = false; CheckLOD3Collider = false; } if (CheckLOD3Collider == true && CheckStatus !="LOD3") { CheckStatus ="LOD3"; CheckLOD1Collider = false; CheckLOD2Collider = false; } if (OldShaderLOD1S != ShaderLOD1S){ LOD1B =null; LOD1T = null; LOD1Material =null; LOD1S = null; OldShaderLOD1S = ShaderLOD1S; } if (OldShaderLOD2S != ShaderLOD2S){ LOD2B =null; LOD2T = null; LOD2Material =null; LOD2S = null; OldShaderLOD2S = ShaderLOD2S; } if (OldShaderLOD3S != ShaderLOD3S){ LOD3B =null; LOD3T = null; LOD3Material =null; LOD3S = null; OldShaderLOD3S = ShaderLOD3S; } }