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游戏开发课程,也可留言。每次的分享都是根据大家的留言总结的,所以想知道什么就得积极互动哦!
然而在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游戏开发课程,也可留言。每次的分享都是根据大家的留言总结的,所以想知道什么就得积极互动哦!
相关文章推荐
- UNITY3D, UNITY3D游戏开发, UNITY3D游戏定制, UNITY3D游戏外包,UNI
- UNITY3D, UNITY3D游戏开发, UNITY3D游戏定制, UNITY3D游戏外包,UNI
- UNITY3D游戏开发, UNITY3D游戏定制
- Unity3D射击游戏-UNITY3D软件开发、游戏开发、UNITY3D游戏开发
- 水果达人-iPhone游戏开发 iPhone软件外包 iOS软件定制 iOS编程开发 App外包
- 喜羊羊吹泡泡-UNITY软件外包、UNITY3D软件开发、UNITY3D游戏开发
- Unity3D射击游戏-UNITY软件外包、UNITY3D软件开发、UNITY3D游戏开发
- 水滴游戏视频-UNITY软件外包、UNITY3D软件开发、UNITY3D游戏开发
- unity3D 整合 vs2008 加快 unity c# 开发
- unity游戏开发 发布android 游戏
- Unity3D射击游戏-游戏开发、UNITY3D游戏开发、UNITY3D软件开发
- unity3d游戏制作入门教程
- unity3d-carwaypoints插件优点
- UNITY3D游戏开发 UNITY游戏开发 UNITY游戏外包 UNITY3D游戏外包
- unity3d游戏软件开发客户和开发人员的基本权利
- unity3d-ide简介
- 学习-unity3d-游戏开发需要掌握什么技能
- unity3d游戏是怎么开发制作出来的?
- 公布官方挑选的最佳用unity引擎开发的虚拟现实体验
- unity3D引擎打造,3d科幻机甲手游《机甲风暴》