public static void ButtonTypical(HSColorSet color, Action changer, bool isDiffuse = true) { string name = isDiffuse ? "Diffuse Color" : "Specular Color"; if (GUILayout.Button(name)) { Studio.Studio.Instance.colorPaletteCtrl.visible = false; if (isDiffuse) { Studio.Studio.Instance.colorMenu.SetColor(color.rgbaDiffuse, UI_ColorInfo.ControlType.PresetsSample); Studio.Studio.Instance.colorMenu.updateColorFunc = new UI_ColorInfo.UpdateColor(c => { color.SetDiffuseRGBA(c); changer(); }); } else { Studio.Studio.Instance.colorMenu.SetColor(color.rgbSpecular, UI_ColorInfo.ControlType.PresetsSample); Studio.Studio.Instance.colorMenu.updateColorFunc = new UI_ColorInfo.UpdateColor(c => { color.SetSpecularRGB(c); changer(); }); } Studio.Studio.Instance.colorPaletteCtrl.visible = true; } }
public static void RandomColor(HSColorSet hcs, Action changer) { if (GUILayout.Button("R", GUILayout.Width(SlidersUI.windowMain.width / 10 - 10))) { Color color = UnityEngine.Random.ColorHSV(); hcs.SetDiffuseRGB(color); changer(); Studio.Studio.Instance.colorMenu.SetColor(color, UI_ColorInfo.ControlType.PresetsSample); } }
public static void SetAllHair(CharFemale chara, HSColorSet color) { if (GUILayout.Button("Apply color to all hair")) { for (int i = 0; i < chara.femaleCustomInfo.hairColor.Length; i++) { chara.femaleCustomInfo.hairColor[i].SetDiffuseRGBA(color.rgbaDiffuse); chara.femaleCustomInfo.hairColor[i].SetSpecularRGB(color.rgbSpecular); chara.femaleCustomInfo.hairColor[i].specularIntensity = color.specularIntensity; chara.femaleCustomInfo.hairColor[i].specularSharpness = color.specularSharpness; chara.femaleCustom.ChangeHairColor(i); } } }
public static void ColorControlGroup(HSColorSet color, Action colorSetter, bool drawSpecularButton = true, bool drawSlider = true) { GUILayout.BeginHorizontal(); ButtonTypical(color, new Action(colorSetter)); RandomColor(color, new Action(colorSetter)); GUILayout.EndHorizontal(); if (drawSpecularButton) { ButtonTypical(color, new Action(colorSetter), false); } if (drawSlider) { NewCSlider(color, new Action(colorSetter)); } }
public static void NewCSlider(HSColorSet colorSet, Action setter) { float newIntensity = AbsSlider(colorSet.specularIntensity); if (Math.Abs(colorSet.specularIntensity - newIntensity) > 0.01F) { colorSet.specularIntensity = newIntensity; setter(); } float newSharpness = AbsSlider(colorSet.specularSharpness); if (Math.Abs(colorSet.specularSharpness - newSharpness) > 0.01F) { colorSet.specularSharpness = newSharpness; setter(); } }
public static void NewCSlider(HSColorSet C, Action setter) { GUILayout.BeginHorizontal(); var temp1 = C.specularIntensity; C.specularIntensity = GUILayout.HorizontalSlider(C.specularIntensity, (float)LimitConfig.NewMin / 100, (float)LimitConfig.NewMax / 100); if (Math.Abs(temp1 - C.specularIntensity) > 0.01F) { setter(); } GUILayout.Label(C.specularIntensity.ToString("0.00"), GUILayout.Width(30f)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); var temp2 = C.specularSharpness; C.specularSharpness = GUILayout.HorizontalSlider(C.specularSharpness, (float)LimitConfig.NewMin / 100, (float)LimitConfig.NewMax / 100); if (Math.Abs(temp2 - C.specularSharpness) > 0.01F) { setter(); } GUILayout.Label(C.specularSharpness.ToString("0.00"), GUILayout.Width(30f)); GUILayout.EndHorizontal(); }