Пример #1
0
        public void SetEase(UCL_Ease ease)
        {
            m_Ease = ease;
            if (m_Ease == null)
            {
                return;
            }
            m_RangeCheck.Init(0, 1);

            for (int i = 0; i < m_Size.x; i++)
            {
                float at  = (i / (float)(m_Size.x - 1));
                float val = m_Ease.GetEase(at);
                m_RangeCheck.AddValue(val);
            }
            SetColor(Color.black);
            m_Min   = m_RangeCheck.Min;
            m_Max   = m_RangeCheck.Max;
            m_Range = m_Max - m_Min;

            if (m_Min < 0)
            {
                float z_pos = -m_Min / m_Range;
                DrawLine(delegate(float y) {
                    return(z_pos);
                }, Color.white);
            }

            if (m_Max > 1.0f)
            {
                float z_pos = (1.0f - m_Min) / m_Range;
                DrawLine(delegate(float y) {
                    return(z_pos);
                }, Color.blue);
            }

            float range = ((Mathf.CeilToInt(m_Range * (m_Size.y + 1))) / (float)m_Size.y);

            DrawLine(
                delegate(float x) {
                float val = m_Ease.GetEase(x);
                float y   = ((val - m_Min) / range);
                return(y);
            }, m_EaseCol);
        }
Пример #2
0
        virtual public float GetY(float x)
        {
            float y = x;

            if (m_Ease != null)
            {
                y = m_Ease.GetEase(x);
            }

            if (m_Reverse)
            {
                y = 1 - y;
            }
            return(y);
        }