在Unity3D游戏开发过程中,UI界面表现有着举足轻重的地位,好的表现效果能让游戏增色不少。要让 UI 精灵图片有独特的表现效果,需要给图片加上特定的 Shader 着色器,这样一来就能让这个图片表现出独特的效果,比如:溶解、消失等等。
然而在Unity3D游戏开发中因为精灵被打包到图集里面,运行起来的效果大相径庭,Shader 里面 uv 坐标不再是单个图片的坐标了,而是图集里面该图片的坐标,使得 Shader 计算错误,最终渲染错乱。
今天我们就先来介绍下简单的处理 Alpha 融合方法,具体代码如下:
using UnityEngine;
using UnityEngine.UI;
public class VertIndexAsUV1 : BaseMeshEffect
{
public override void ModifyMesh(VertexHelper vh)
{
if (!IsActive())
return;
UIVertex vert = new UIVertex();
for (int i = 0; i < vh.currentVertCount; i++)
{
vh.PopulateUIVertex(ref vert, i);
vert.uv1.x = (i >> 1);
vert.uv1.y = ((i >> 1) ^ (i & 1));
vh.SetUIVertex(vert, i);
}
}
}
今天的知识点总结就先到这里,若还有不明白的欢迎到菜鸟在线观看Unity3D游戏开发课程,也可留言。每次的分享都是根据大家的留言总结的,所以想知道什么就得积极互动哦!