Exemplo n.º 1
0
        public override void ModifyMesh(VertexHelper vh)
        {
            if (enabled)
            {
                Rect rect = graphic.rectTransform.rect;
                GradientUtils.Matrix2x3 localPositionMatrix = GradientUtils.LocalPositionMatrix(rect, Vector2.right);

                UIVertex vertex = default(UIVertex);
                for (int i = 0; i < vh.currentVertCount; i++)
                {
                    vh.PopulateUIVertex(ref vertex, i);
                    Vector2 normalizedPosition = localPositionMatrix * vertex.position;
                    vertex.color *= GradientUtils.Bilerp(m_bottomLeftColor, m_bottomRightColor, m_topLeftColor, m_topRightColor, normalizedPosition);
                    vh.SetUIVertex(vertex, i);
                }
            }
        }
Exemplo n.º 2
0
        public override void ModifyMesh(VertexHelper vh)
        {
            if (enabled)
            {
                Rect    rect = graphic.rectTransform.rect;
                Vector2 dir  = GradientUtils.RotationDir(m_angle);
                GradientUtils.Matrix2x3 localPositionMatrix = GradientUtils.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      = GradientUtils.VerticePositions[i % 4];
                    Vector2 localPosition = localPositionMatrix * position;
                    vertex.color *= Color.Lerp(m_color2, m_color1, localPosition.y);
                    vh.SetUIVertex(vertex, i);
                }
            }
        }
Exemplo n.º 3
0
        public override void ModifyMesh(VertexHelper vh)
        {
            if (enabled)
            {
                Rect    rect = graphic.rectTransform.rect;
                Vector2 dir  = GradientUtils.RotationDir(m_angle);

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

                GradientUtils.Matrix2x3 localPositionMatrix = GradientUtils.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);
                }
            }
        }