您的位置:首页 > 移动开发 > Unity3D

Unity3D游戏开发Shade渲染错乱简单处理法

2016-01-07 17:30 323 查看
在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游戏开发课程,也可留言。每次的分享都是根据大家的留言总结的,所以想知道什么就得积极互动哦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息