Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.UI;
- [AddComponentMenu("UI/Effects/Gradient")]
- public class Gradient : BaseVertexEffect {
- [SerializeField]
- private Color32 topColor = Color.white;
- [SerializeField]
- private Color32 bottomColor = Color.black;
- public override void ModifyVertices(List<UIVertex> vertexList) {
- if (!IsActive()) {
- return;
- }
- int count = vertexList.Count;
- float bottomY = vertexList[0].position.y;
- float topY = vertexList[0].position.y;
- for (int i = 1; i < count; i++) {
- float y = vertexList[i].position.y;
- if (y > topY) {
- topY = y;
- }
- else if (y < bottomY) {
- bottomY = y;
- }
- }
- float uiElementHeight = topY - bottomY;
- for (int i = 0; i < count; i++) {
- UIVertex uiVertex = vertexList[i];
- uiVertex.color = Color32.Lerp(bottomColor, topColor, (uiVertex.position.y - bottomY) / uiElementHeight);
- vertexList[i] = uiVertex;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement