コード例 #1
0
        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;
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
        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;
                }
            }
        }