- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
- 纳金币
- 53456
- 精华
- 316
|
UGUI自带两个字体效果--Outline 和 Shadow
而渐变效果实现木有,以下是社区中的实现,供参考使用:https://www.youtube.com/watch?v=gkGSrjZNEzQ(此视频是一个专业插件,很强大)
另外一个简单实现:- 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;
- }
- }
- }
复制代码 |
|