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); } } }
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); } } }
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); } } }