基于unity3D实现渐变颜色的简单脚本,代码很少,就不废话了,直接上代码和效果图。

效果图:

using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace ExtraFoundation.Components { [AddComponentMenu("UI/Effects/Gradient")] public class UIGradient : BaseMeshEffect { #region Public Declarations public enum Type { Vertical, Horizontal } #endregion #region Public Properties public Type GradientType = Type.Vertical; [Range(-1f, 1f)] public float Offset = 0f; public Gradient gradient; #endregion #region Public Methods public override void ModifyMesh(VertexHelper helper) { if (!IsActive() || helper.currentVertCount == 0) { return; } vertexList.Clear(); helper.GetUIVertexStream(vertexList); int nCount = vertexList.Count; switch (GradientType) { case Type.Vertical: { float fBottomY = vertexList[0].position.y; float fTopY = vertexList[0].position.y; float fYPos = 0f; for (int i = nCount - 1; i >= 1; --i) { fYPos = vertexList[i].position.y; if (fYPos > fTopY) fTopY = fYPos; else if (fYPos < fBottomY) fBottomY = fYPos; } float fUIElementHeight = 1f / (fTopY - fBottomY); UIVertex v = new UIVertex(); for (int i = 0; i < helper.currentVertCount; i++) { helper.PopulateUIVertex(ref v, i); v.color = gradient.Evaluate((v.position.y - fBottomY) * fUIElementHeight - Offset); helper.SetUIVertex(v, i); } } break; case Type.Horizontal: { float fLeftX = vertexList[0].position.x; float fRightX = vertexList[0].position.x; float fXPos = 0f; for (int i = nCount - 1; i >= 1; --i) { fXPos = vertexList[i].position.x; if (fXPos > fRightX) fRightX = fXPos; else if (fXPos < fLeftX) fLeftX = fXPos; } float fUIElementWidth = 1f / (fRightX - fLeftX); UIVertex v = new UIVertex(); for (int i = 0; i < helper.currentVertCount; i++) { helper.PopulateUIVertex(ref v, i); v.color = gradient.Evaluate((v.position.x - fLeftX) * fUIElementWidth - Offset); helper.SetUIVertex(v, i); } } break; default: break; } } #endregion #region Internal Fields private List vertexList = new List(); #endregion } }

虽然支持的内容不多,但是小而精,希望对大家有用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持华域联盟。

unity 渐变消失_Unity3D实现渐变颜色效果|chu相关推荐

  1. unity 模型渐变消失_Unity 雨水滴到屏幕效果

    文章目录 前言 一.实现过程 1.代码 2.代码分步解析 总结 参考 前言 本文主要介绍用unity实现雨水滴到屏幕的效果,文章介绍的是基础实现,读完这篇文章再去实现复杂效果会更得心应手些.我们先看更 ...

  2. unity 渐变消失_Shader Forge中怎么调整time渐变消失的间隔

    求助 显示全部标签 搜索中出现以下关键词标签即可被搜索引擎找到 楼主可在左边的[标签]按钮中添加 希望搜索结果同时满足多个条件,可用空格隔开 求助 Shader Forge中怎么调整time渐变消失的 ...

  3. android自定义控件颜色渐变,Android编程实现自定义渐变颜色效果详解

    本文实例讲述了Android编程实现自定义渐变颜色效果.分享给大家供大家参考,具体如下: 你是否已经厌恶了纯色的背景呢?那好,Android提供给程序员自定义渐变颜色的接口,让我们的界面炫起来吧. x ...

  4. 使用CSS实现“文段尾行渐变消失”

    问题描述 最近在做H5的页面的时候,遇到了这样的一个需求: 在一个展示信息的页面,为了提升用户体验,希望在展示一个文段信息的时,只展示指定行数,将超出行数隐藏,并且如果有超出的行数,则展示文段的尾行渐 ...

  5. 渐变显示渐变消失的BackgroundView

    渐变显示渐变消失的BackgroundView 效果如下: 源码: BackgroundView.h 与 BackgroundView.m // // BackgroundView.h // Test ...

  6. pyecharts 主题:颜色渐变实例(线性渐变)

    效果 配置项:pyecharts官网--ItemStyleOpts:图元样式配置项 代码位置 完整代码 from pyecharts import options as opts from pyech ...

  7. php渐变背景颜色,css背景颜色渐变案例:线性渐变和径向渐变效果实例详解

    渐变是两种或多种颜色之间的平滑过渡.以前,必须使用图像来实现这些效果.但是,通过使用 CSS3 渐变(gradients),可以减少下载的事件和宽带的使用.此外,渐变效果的元素在放大时看起来效果更好, ...

  8. css 背景色透明且渐变且不影响文字颜色

    css 背景色透明且渐变且不影响文字颜色 rgba background: linear-gradient(90deg,rgba(255,159,0,0.16), rgba(255,102,0,0.1 ...

  9. unity 随机数_Unity 雨水滴到屏幕效果

    文章目录 前言 一.实现过程 1.代码 2.代码分步解析 总结 参考 前言 本文主要介绍用unity实现雨水滴到屏幕的效果,文章介绍的是基础实现,读完这篇文章再去实现复杂效果会更得心应手些.我们先看更 ...

最新文章

  1. Codeforces Round #672 (Div. 2)D. Rescue Nibel![扫描线解决区间问题]
  2. python做mysql数据迁移_Python中MySQL数据迁移到MongoDB脚本的方法
  3. 毕业即失业?你到底在焦虑什么
  4. YoloAll V2发布,集成所有主流Yolo模型于一身
  5. 常州全国计算机考点,2017年常州高考考点及考场查询系统
  6. 【微机原理与接口技术】具体芯片(1)并行接口8255A(2):控制字概述
  7. python 文本相似度_python实现余弦相似度文本比较
  8. java集合for循环_详解Java中list,set,map的遍历与增强for循环
  9. python如何开发一个程序思路_用python编写一个合格的ftp程序,思路是怎样的?
  10. [python]凯撒密码简单方法
  11. VSCode 当笔记工具
  12. php为图片平铺文字水印
  13. 电脑连WiFi怎么查看密码是多少
  14. 学Java需要数学好吗?数学基础差就不能学Java吗?
  15. 第十章分治算法(大数相乘)
  16. 论文阅读笔记:Recent Advances and Challenges in Task-oriented Dialog Systems
  17. 【100%通过率】华为OD机试真题 C 实现【单词倒序】【2022.11 Q4 新题】
  18. Ubuntu系统中本地代码上传至Github库
  19. [媒体分流直播]媒体直播和传统直播的区别,以及媒体直播的特点
  20. 基于matlab数字基带,基于MATLAB的数字基带传输的 FIR滤波器的设计

热门文章

  1. 你的存在,就是打我脸的
  2. 如何用10万资金炒房到1000万
  3. 【日常踩坑】Android机微信webview中页面跳转的问题
  4. arma预测matlab讲解,MATLAB中ARMA模型预测差分问题
  5. 监督学习 | 集成学习 之AdaBoost、梯度提升及Slearn实现
  6. 中科院遗传所钱文峰组发表新冠病毒源于自然界的科学证据
  7. 样本分布不平衡,机器学习准确率高又有什么用?
  8. 一个10篇一作SCI博士的走心分享----宏组学研究之“道” (完整收藏版)!!
  9. stm32不使用外部晶振管脚怎么处理_外部晶体振荡器被旁路的原理和原因
  10. python编程与数学书籍