private static ColorSlider CreateSlider(ColorValueType type) { ColorPicker picker = GetColorPicker(); GameObject result; if (CreateGameObject(out result)) { SetRectTransformSize(result.transform as RectTransform, 160, 20); result.name = "Slider_" + type.ToString(); // Background CreateGradientBackground(type); // Handle slider area RectTransform handleArea = new GameObject("HandleArea").AddComponent<RectTransform>(); handleArea.SetParent(result.transform, false); SetRectTransformSize(handleArea, Vector2.zero, Vector2.one, new Vector2(2.5f, 2.5f)); // Handle RectTransform handleRect = new GameObject("Handle").AddComponent<RectTransform>(); handleRect.SetParent(handleArea, false); handleRect.offsetMin = Vector2.zero; handleRect.offsetMax = Vector2.zero; handleRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 6f); Image handle = handleRect.gameObject.AddComponent<Image>(); handle.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/Knob.psd"); // Slider Slider slider = result.AddComponent<Slider>(); slider.handleRect = handleRect; slider.targetGraphic = handle; // ColorSlider ColorSlider colorSlider = result.AddComponent<ColorSlider>(); colorSlider.Type = type; colorSlider.Picker = picker; Selection.activeGameObject = result.gameObject; return colorSlider; } return null; }
private static void CreateInput(ColorValueType type) { ColorPicker picker = GetColorPicker(); GameObject result; if (CreateGameObject(out result)) { SetRectTransformSize(result.transform as RectTransform, 50, 20); result.name = "Input_" + type.ToString(); InputField input = AddInput(result, 0, 0); input.textComponent.alignment = TextAnchor.MiddleCenter; input.characterValidation = InputField.CharacterValidation.Decimal; input.keyboardType = TouchScreenKeyboardType.NumbersAndPunctuation; ColorInput colorInput = result.AddComponent<ColorInput>(); colorInput.Type = type; colorInput.SetDefaultMinMax(); colorInput.Picker = picker; } }
private static void CreateLabel(ColorValueType type) { ColorPicker picker = GetColorPicker(); GameObject result; if (CreateGameObject(out result)) { SetRectTransformSize(result.transform as RectTransform, 80, 20); result.name = "Label_" + type; ColorLabel label = result.AddComponent<ColorLabel>(); label.Type = type; label.SetDefaultValuesForType(); label.Picker = picker; } }
private static void CreateGradientBackground(ColorValueType type) { ColorPicker picker = GetColorPicker(); GameObject result; if (CreateGameObject(out result)) { SetRectTransformSize(result.transform as RectTransform, new Vector2(0, 0.2f), new Vector2(1, 0.8f), Vector2.zero); result.name = "GradientBackground"; GradientBackground background = result.AddComponent<GradientBackground>(); background.Picker = picker; switch (type) { case ColorValueType.Alpha: background.DisplayCheckboard = true; background[0].Type = GradientBackground.GradientPartType.Color; background[0].FixedAlphaValue = 0; background[1].Type = GradientBackground.GradientPartType.Color; break; case ColorValueType.RGB_R: background[0].Type = GradientBackground.GradientPartType.RGB_R; background[1].Type = GradientBackground.GradientPartType.RGB_R; break; case ColorValueType.RGB_G: background[0].Type = GradientBackground.GradientPartType.RGB_G; background[1].Type = GradientBackground.GradientPartType.RGB_G; break; case ColorValueType.RGB_B: background[0].Type = GradientBackground.GradientPartType.RGB_B; background[1].Type = GradientBackground.GradientPartType.RGB_B; break; case ColorValueType.HSV_H: background[0].Type = GradientBackground.GradientPartType.HSV_H; background[0].FixedValue2 = 1; background[0].FixedValue3 = 1; background[0].Value2IsFixed = true; background[0].Value3IsFixed = true; background[1].Type = GradientBackground.GradientPartType.HSV_H; background[1].FixedValue2 = 1; background[1].FixedValue3 = 1; background[1].Value2IsFixed = true; background[1].Value3IsFixed = true; background.Count = 7; break; case ColorValueType.HSV_S: background[0].Type = GradientBackground.GradientPartType.HSV_S; background[1].Type = GradientBackground.GradientPartType.HSV_S; break; case ColorValueType.HSV_V: background[0].Type = GradientBackground.GradientPartType.HSV_V; background[1].Type = GradientBackground.GradientPartType.HSV_V; break; case ColorValueType.HSL_H: background[0].Type = GradientBackground.GradientPartType.HSL_H; background[0].FixedValue2 = 1; background[0].FixedValue3 = 0.5f; background[0].Value2IsFixed = true; background[0].Value3IsFixed = true; background[1].Type = GradientBackground.GradientPartType.HSL_H; background[1].FixedValue2 = 1; background[1].FixedValue3 = 0.5f; background[1].Value2IsFixed = true; background[1].Value3IsFixed = true; background.Count = 7; break; case ColorValueType.HSL_S: background[0].Type = GradientBackground.GradientPartType.HSL_S; background[1].Type = GradientBackground.GradientPartType.HSL_S; break; case ColorValueType.HSL_L: background.Count = 3; background[0].Type = GradientBackground.GradientPartType.HSL_L; background[1].Type = GradientBackground.GradientPartType.HSL_L; background[2].Type = GradientBackground.GradientPartType.HSL_L; break; default: break; } } }