예제 #1
0
        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;
            }
        }
예제 #2
0
 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);
     }
 }
예제 #3
0
 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);
         }
     }
 }
예제 #4
0
        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));
            }
        }
예제 #5
0
        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();
            }
        }
예제 #6
0
        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();
        }