public void Set(EBendParameterType type, string name, int id)
    {
        this.id = id;
        switch (type)
        {
        case EBendParameterType.FloatAngle:
            spriteIcon.sprite = angleSprite;
            break;

        case EBendParameterType.Float:
            spriteIcon.sprite = rulerSprite;
            break;

        case EBendParameterType.Integer:
            spriteIcon.sprite = integerSprite;
            break;

        case EBendParameterType.StringEnum:
            spriteIcon.sprite = enumSprite;
            break;

        default:
            throw new ArgumentException("UIBendParameter: Set() Invalid type.");
        }
        nameText.text = name;
    }
Example #2
0
    public BendParameter(EBendParameterName name, EBendParameterType type, Color color, object value, object valueObject = null, bool enabled = true)
    {
        this.name        = name;
        this.type        = type;
        this.color       = color;
        this.value       = value;
        this.valueObject = valueObject;

        // Make Color String
        m_ColorHexString = ((int)(color.r * 255)).ToString("X2")
                           + ((int)(color.g * 255)).ToString("X2")
                           + ((int)(color.b * 255)).ToString("X2")
                           + ((int)(color.a * 255)).ToString("X2");
    }
Example #3
0
    private void DisplayWidget(int id)
    {
        // Remove any active Highlighting
        m_Bend.SetHighlight(null);
        m_HelpWidget.GetComponentInChildren <BendHelp>().UnSelect();

        // Don't reselect the same Widget
        if (m_ActiveParameter == id)
        {
            return;
        }
        // Disable current Widget
        if (m_ActiveWidget != null)
        {
            m_ActiveWidget.gameObject.SetActive(false);
        }
        m_ActiveParameter = id;

        BendParameter      param = m_Bend.inputParameters[id];
        EBendParameterType type  = param.type;

        object[] range = BendParameter.GetRange(param.name);

        switch (type)
        {
        case EBendParameterType.FloatAngle:
            m_ActiveWidget = m_AngleWidget;
            m_ActiveWidget.gameObject.SetActive(true);
            AngleSlider ans = m_AngleWidget.GetComponentInChildren <AngleSlider>();
            ans.SetRange((float)range[0], (float)range[1]);
            ans.value = (float)param.value;
            break;

        case EBendParameterType.Float:
            m_ActiveWidget = m_RulerWidget;
            m_ActiveWidget.gameObject.SetActive(true);
            MultiRulerSlider mr = m_RulerWidget.GetComponentInChildren <MultiRulerSlider>();
            mr.SetRange((float)range[1]);
            mr.Set((float)param.value, false);
            break;

        case EBendParameterType.Integer:
            m_ActiveWidget = m_IntegerWidget;
            m_ActiveWidget.gameObject.SetActive(true);
            IntegerSlider ins = m_IntegerWidget.GetComponentInChildren <IntegerSlider>();
            ins.SetRange((int)range[0], (int)range[1]);
            ins.SetName(BendParameter.GetStringValue(param.name));
            ins.value = (int)param.value;
            break;

        case EBendParameterType.StringEnum:
            m_ActiveWidget = m_EnumWidget;
            m_ActiveWidget.gameObject.SetActive(true);

            EnumDropdown ed = m_EnumWidget.GetComponentInChildren <EnumDropdown>();
            List <Dropdown.OptionData> enumList = ed.options;
            StringEnum se        = (StringEnum)param.valueObject;
            int        enumStart = (int)range[0];
            int        enumEnd   = (int)range[1];
            enumList.Clear();
            for (int i = enumStart; i <= enumEnd; ++i)
            {
                enumList.Add(new EnumDropdown.EnumOptionData(se.ToStringValue(i), null, se.ToDescription(i)));
            }
            ed.value = (int)param.value;
            ed.Refresh();
            break;

        default:
            throw new ArgumentException("BendInputScreen: DisplayWidget() Invalid type.");
        }
    }