コード例 #1
0
        public void ApplyTheme()
        {
            _theme = GetComponentInParent <Theme>();
            if (!_theme)
            {
                return;
            }

            _themeSettings = _theme.theme;
            if (!_themeSettings)
            {
                return;
            }

            Image im = GetComponent <Image>();

#if UNITY_EDITOR
            Undo.RecordObject(im, "Changing Image Color");
#endif
            im.color = _themeSettings.sliderFillColor;
#if UNITY_EDITOR
            PrefabUtility.RecordPrefabInstancePropertyModifications(im);
#endif
        }
コード例 #2
0
        public void ApplyTheme()
        {
            _theme = GetComponentInParent <Theme>();
            if (!_theme)
            {
                return;
            }

            _themeSettings = _theme.theme;
            if (!_themeSettings)
            {
                return;
            }

            if (colorTag != ColorTag.Unchanged)
            {
                PopulateColorDictionary();

                Image im = GetComponent <Image>();
                if (im)
                {
#if UNITY_EDITOR
                    Undo.RecordObject(im, "Changing Image Color");
#endif
                    im.color = _colorFromTag[colorTag];
#if UNITY_EDITOR
                    PrefabUtility.RecordPrefabInstancePropertyModifications(im);
#endif
                }

                Text text = GetComponent <Text>();
                if (text)
                {
#if UNITY_EDITOR
                    Undo.RecordObject(text, "Changing Text Color");
#endif
                    text.color = _colorFromTag[colorTag];
#if UNITY_EDITOR
                    PrefabUtility.RecordPrefabInstancePropertyModifications(text);
#endif
                }

                TextMeshProUGUI tmp = GetComponent <TextMeshProUGUI>();
                if (tmp)
                {
#if UNITY_EDITOR
                    Undo.RecordObject(tmp, "Changing Text Color");
#endif
                    tmp.color = _colorFromTag[colorTag];
#if UNITY_EDITOR
                    PrefabUtility.RecordPrefabInstancePropertyModifications(tmp);
#endif
                    SetTextMeshProFontMaterial setTextMeshProFontMaterial =
                        GetComponent <SetTextMeshProFontMaterial>();
                    if (_themeSettings.useFontMaterial)
                    {
                        if (setTextMeshProFontMaterial.fontMaterialSelection ==
                            SetTextMeshProFontMaterial.FontMaterialSelection.Default)
                        {
                            _fontMaterialUsedAutomatically = true;
                            switch (colorTag)
                            {
                            case ColorTag.Unchanged:
                                break;

                            case ColorTag.White:
                                break;

                            case ColorTag.Blue:
                                setTextMeshProFontMaterial.fontMaterialSelection =
                                    SetTextMeshProFontMaterial.FontMaterialSelection.Alt2OrBlue;
                                break;

                            case ColorTag.Green:
                                setTextMeshProFontMaterial.fontMaterialSelection =
                                    SetTextMeshProFontMaterial.FontMaterialSelection.Alt1OrGreen;
                                break;

                            case ColorTag.Gray:
                                break;

                            case ColorTag.Highlighted:
                                setTextMeshProFontMaterial.fontMaterialSelection =
                                    SetTextMeshProFontMaterial.FontMaterialSelection.Alt3OrHighlighted;
                                break;

                            case ColorTag.Caution:
                                setTextMeshProFontMaterial.fontMaterialSelection =
                                    SetTextMeshProFontMaterial.FontMaterialSelection.Alt4OrCaution;
                                break;

                            case ColorTag.Danger:
                                setTextMeshProFontMaterial.fontMaterialSelection =
                                    SetTextMeshProFontMaterial.FontMaterialSelection.Alt5OrDanger;
                                break;

                            case ColorTag.ExtremeDanger:
                                setTextMeshProFontMaterial.fontMaterialSelection =
                                    SetTextMeshProFontMaterial.FontMaterialSelection.Alt6OrExtremeDanger;
                                break;

                            default:
                                throw new ArgumentOutOfRangeException();
                            }

                            setTextMeshProFontMaterial.ApplyTheme();
                        }
                    }
                    else if (_fontMaterialUsedAutomatically)
                    {
                        setTextMeshProFontMaterial.fontMaterialSelection =
                            SetTextMeshProFontMaterial.FontMaterialSelection.Default;
                        _fontMaterialUsedAutomatically = false;
                        setTextMeshProFontMaterial.ApplyTheme();
                    }
                }
            }
        }