void OnGUI() { data = (TimeOfDayData)EditorGUI.ObjectField(new Rect(10f, 10f, 100f, 15f), data, typeof(TimeOfDayData), false); if (GUI.Button(new Rect(120f, 10f, 100f, 15f), "Generate Tex")) { Texture2D tex = new Texture2D(256, 256, TextureFormat.RGB24, false); PaintTexture(tex); var bytes = tex.EncodeToPNG(); DestroyImmediate(tex); File.WriteAllBytes(Application.dataPath + "/_Textures/todGradient.png", bytes); } if (data != null) { bool isDirty = false; float cpwidth = 40f; float cpheight = 17f; for (int i = 0; i < data.palettes.Length; i++) { TimeOfDayPalette pal = data.palettes[i]; float t = Mathf.Clamp01(pal.time / 24f); float h = 50f + Mathf.Floor(t * 600f); float cw = 10f; float c = pal.time; pal.time = EditorGUI.FloatField(new Rect(cw, h, cpwidth, cpheight), pal.time); if (c != pal.time) { isDirty = true; } cw += cpwidth; Color cache = pal.c0; pal.c0 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c0); if (pal.c0 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c1; pal.c1 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c1); if (pal.c1 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c2; pal.c2 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c2); if (pal.c2 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c3; pal.c3 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c3); if (pal.c3 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c4; pal.c4 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c4); if (pal.c4 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c5; pal.c5 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c5); if (pal.c5 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c6; pal.c6 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c6); if (pal.c6 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c7; pal.c7 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c7); if (pal.c7 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c8; pal.c8 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c8); if (pal.c8 != cache) { isDirty = true; } cw += cpwidth; cache = pal.c9; pal.c9 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c9); if (pal.c9 != cache) { isDirty = true; } cw += cpwidth; } if (isDirty) { EditorUtility.SetDirty(data); } } }
void OnGUI() { data = (TimeOfDayData)EditorGUI.ObjectField(new Rect(10f, 10f, 100f, 15f), data, typeof(TimeOfDayData), false); if (GUI.Button(new Rect(120f, 10f, 100f, 15f), "Generate Tex")) { Texture2D tex = new Texture2D (256, 256, TextureFormat.RGB24, false); PaintTexture(tex); var bytes = tex.EncodeToPNG(); DestroyImmediate(tex); File.WriteAllBytes(Application.dataPath + "/_Textures/todGradient.png", bytes); } if (data != null) { bool isDirty = false; float cpwidth = 40f; float cpheight = 17f; for (int i = 0; i < data.palettes.Length; i++) { TimeOfDayPalette pal = data.palettes[i]; float t = Mathf.Clamp01(pal.time / 24f); float h = 50f + Mathf.Floor(t * 600f); float cw = 10f; float c = pal.time; pal.time = EditorGUI.FloatField(new Rect(cw, h, cpwidth, cpheight), pal.time); if (c != pal.time) isDirty = true; cw += cpwidth; Color cache = pal.c0; pal.c0 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c0); if (pal.c0 != cache) isDirty = true; cw += cpwidth; cache = pal.c1; pal.c1 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c1); if (pal.c1 != cache) isDirty = true; cw += cpwidth; cache = pal.c2; pal.c2 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c2); if (pal.c2 != cache) isDirty = true; cw += cpwidth; cache = pal.c3; pal.c3 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c3); if (pal.c3 != cache) isDirty = true; cw += cpwidth; cache = pal.c4; pal.c4 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c4); if (pal.c4 != cache) isDirty = true; cw += cpwidth; cache = pal.c5; pal.c5 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c5); if (pal.c5 != cache) isDirty = true; cw += cpwidth; cache = pal.c6; pal.c6 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c6); if (pal.c6 != cache) isDirty = true; cw += cpwidth; cache = pal.c7; pal.c7 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c7); if (pal.c7 != cache) isDirty = true; cw += cpwidth; cache = pal.c8; pal.c8 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c8); if (pal.c8 != cache) isDirty = true; cw += cpwidth; cache = pal.c9; pal.c9 = EditorGUI.ColorField(new Rect(cw, h, cpwidth, cpheight), pal.c9); if (pal.c9 != cache) isDirty = true; cw += cpwidth; } if (isDirty) { EditorUtility.SetDirty(data); } } }