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

在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游戏开发课程,也可留言。每次的分享都是根据大家的留言总结的,所以想知道什么就得积极互动哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值