using System.Collections.Generic; using TMPro; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; public class PresetColor : MonoBehaviour { public Slider Slider1; public Slider Slider2; public Slider Slider3; public Slider Slider_Slector1; public Slider Slider_Slector2; public Slider Slider_Slector3; public Image SliderHandleSelector1; public Image SliderHandleSelector2; public Image SliderHandleSelector3; public TextMeshProUGUI hexValueTextSelector1; public TextMeshProUGUI hexValueTextSelector2; public TextMeshProUGUI hexValueTextSelector3; public Image SliderBackground1; public Image SliderBackground2; public Image SliderBackground3; public void Click() { print("Preset name=====" + name); } public void ToglePreset() { bool isActive = gameObject.GetComponent().isOn; GameObject Preset= Get.o2("TEXTUREPNL", "PresetAllColors"); GameObject SETbyCOLORS = Get.o2("TEXTUREPNL", "COLORS"); Set.alpha(Preset, !isActive); Set.alpha(SETbyCOLORS, isActive); if (SETbyCOLORS.activeInHierarchy) { //Get Colors from preset GameObject LargePanel = Get.o2("TEXTUREPNL", "LARGE"); LargePanel.SetActive(true); GameObject CategoryList = LargePanel.transform.Find("CATEGORY").gameObject; string Category = Get.TogOn(CategoryList).name; string PresetNumber = Get.TogOn(Preset).name; string PresetName = Category + "_" + PresetNumber; print("PresetName=====" + PresetName); string C1 = PresetRecipe.Textures[PresetName].Split("_")[1]; string C2 = PresetRecipe.Textures[PresetName].Split("_")[2]; string C3 = PresetRecipe.Textures[PresetName].Split("_")[3]; print("C1=====" + C1 + " C2==" + C2 + " C3====" + C3); Slider_Slector1.value = 0.5f; Slider_Slector2.value = 0.5f; Slider_Slector2.value = 0.5f; hexValueTextSelector1.text = C1; hexValueTextSelector1.text = C2; hexValueTextSelector1.text = C3; UpdateVisualsSelector(Slider1, SliderBackground1, SliderHandleSelector1, C1); UpdateVisualsSelector(Slider2, SliderBackground2, SliderHandleSelector2, C2); UpdateVisualsSelector(Slider3, SliderBackground3, SliderHandleSelector3, C3); LargePanel.SetActive(false); } } public void UpdateVisualsSelector(Slider Slider,Image SliderBackground ,Image SliderHandleSelector, string C) { Slider.SetValueWithoutNotify(0.5f); Color middleColor = DOIT.CSc(C, 255); Color.RGBToHSV(middleColor, out float h, out float s, out float v); Color startColor = Color.HSVToRGB(h, s * 0.4f, Mathf.Min(1f, v * 1.5f)); Color endColor = Color.HSVToRGB(h, Mathf.Min(1f, s * 1.1f), v * 0.5f); if (C == "000000") { middleColor = Color.grey; startColor = Color.white; endColor = Color.black; } SetupSliderBackground(SliderBackground, startColor, middleColor, endColor); SliderHandleSelector.color = DOIT.CSc(C, 255); } public void SetupSliderBackground(Image sliderBackground, Color startColor, Color middleColor, Color endColor) { Texture2D gradientTexture = new(256, 1); for (int i = 0; i < gradientTexture.width; i++) { float t = i / (float)gradientTexture.width; Color gradientColor; if (t < 0.5f) { gradientColor = Color.Lerp(startColor, middleColor, t * 2f); } else { gradientColor = Color.Lerp(middleColor, endColor, (t - 0.5f) * 2f); } gradientTexture.SetPixel(i, 0, gradientColor); } gradientTexture.Apply(); if (sliderBackground != null) { Sprite sprite = Sprite.Create(gradientTexture, new Rect(0, 0, gradientTexture.width, gradientTexture.height), new Vector2(0.5f, 0.5f)); sliderBackground.sprite = sprite; } } public static void SetPreset(string Category, string model) { print("Category============" + Category + " model====" + model); GameObject Btn = Instantiate(Get.o2("TEXTUREPNL", "BtnPreset")); GameObject BtnContainer = Get.o2("TEXTUREPNL", "PresetAllColors"); DOIT.DELETEAllObjectChild(BtnContainer); for (int i = 1; i < 26; i++) { GameObject Newbtn = Instantiate(Btn); Newbtn.SetActive(true); Newbtn.transform.SetParent(BtnContainer.transform, false); Newbtn.name = i.ToString(); string PresetName = Category + "_" + i.ToString(); print("PresetName======" + PresetName);//PresetName======CERA_1 string ColorHEX = PresetRecipe.Textures[PresetName].Split("_")[0]; Newbtn.transform.Find("Background").GetComponent().color = DOIT.CSc(ColorHEX, 255); } Set.ToggleGroupToAllChild("TEXTUREPNL/PresetAllColors"); } }