예제 #1
0
        public override void ModifyMesh(VertexHelper vh)
        {
            if (enabled)
            {
                Rect rect = graphic.rectTransform.rect;

                UIVertex vertex = default(UIVertex);
                for (int i = 0; i < vh.currentVertCount; i++)
                {
                    vh.PopulateUIVertex(ref vertex, i);
                    Vector2 normalizedPosition = UIGradientUtils.VerticePositions[i % 4];
                    vertex.color *= UIGradientUtils.Bilerp(m_bottomLeftColor, m_bottomRightColor, m_topLeftColor, m_topRightColor, normalizedPosition);
                    vh.SetUIVertex(vertex, i);
                }
            }
        }
예제 #2
0
        public override void ModifyMesh(VertexHelper vh)
        {
            if (enabled)
            {
                Rect    rect = graphic.rectTransform.rect;
                Vector2 dir  = UIGradientUtils.RotationDir(m_angle);
                UIGradientUtils.Matrix2x3 localPositionMatrix = UIGradientUtils.LocalPositionMatrix(new Rect(0f, 0f, 1f, 1f), dir);

                UIVertex vertex = default(UIVertex);
                for (int i = 0; i < vh.currentVertCount; i++)
                {
                    vh.PopulateUIVertex(ref vertex, i);
                    Vector2 position      = UIGradientUtils.VerticePositions[i % 4];
                    Vector2 localPosition = localPositionMatrix * position;
                    vertex.color *= Color.Lerp(m_color2, m_color1, localPosition.y);
                    vh.SetUIVertex(vertex, i);
                }
            }
        }
예제 #3
0
        public override void ModifyMesh(VertexHelper vh)
        {
            if (enabled)
            {
                Rect    rect = graphic.rectTransform.rect;
                Vector2 dir  = UIGradientUtils.RotationDir(m_angle);

                if (!m_ignoreRatio)
                {
                    dir = UIGradientUtils.CompensateAspectRatio(rect, dir);
                }

                UIGradientUtils.Matrix2x3 localPositionMatrix = UIGradientUtils.LocalPositionMatrix(rect, dir);

                UIVertex vertex = default(UIVertex);
                for (int i = 0; i < vh.currentVertCount; i++)
                {
                    vh.PopulateUIVertex(ref vertex, i);
                    Vector2 localPosition = localPositionMatrix * vertex.position;
                    vertex.color *= Color.Lerp(m_color2, m_color1, localPosition.y);
                    vh.SetUIVertex(vertex, i);
                }
            }
        }