博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【小松教你手游开发】【unity实用技能】unity在游戏中更换角色的shader,比如加个流光...
阅读量:6264 次
发布时间:2019-06-22

本文共 667 字,大约阅读时间需要 2 分钟。

原本想着这个功能怎么实现,刚好在项目里看到这里记录一下。

首先项目的模型里会有一个基本的Material,这个就是美术出给你的模型的材质。

可能有的需求是在游戏中触发一个事件,你身上加个流光或者描边等效果。

我们知道这些效果如果要表现在身上,用特效是不好看的,要用Shader去表现。

这时候就需要你换一个Shader。

而其实我们不会直接换Shader的,是换一个Material。

所以本质上是用一个基本是原来Material复制过来的新Material,而改了他的Shader。

然后在触发的时候换了Material。

如:

Material[] effectMaterials = new Material[materials.Length];  for (int j = effectMaterials.Length; --j >= 0;)  {      if (null == materials[j])      {          effectMaterials[j] = null;          continue;      }      Material effectMaterial = new Material(materials[j]);      effectMaterial.shader = DistShader;      effectMaterials[j] = effectMaterial;  }

转载于:https://blog.51cto.com/13638120/2084934

你可能感兴趣的文章
Firefox 9正式发布
查看>>
ADO.NET简介
查看>>
[转]免费开源.net网上商城
查看>>
Android so减包相关
查看>>
linux shell获取用户输入
查看>>
Linux抓包工具
查看>>
js 读写Cookie
查看>>
c哈希表hashtable操作
查看>>
如何维护应用程序状态
查看>>
[Map 3D开发实战系列] Map Resource Explorer 之八--有什么用?怎么用?
查看>>
现代软件工程讲义 8 稳定阶段 (测试的计划和执行)
查看>>
Ubuntu 11.04 安装后要做的20件事情
查看>>
KlayGE 4.0中Deferred Rendering的改进(一):流水线
查看>>
6-4汉诺塔问题
查看>>
【转载】详解SQL2005/SQL2008动态生成分区脚本的方法
查看>>
构建高性能web之路------mysql读写分离实战(转)
查看>>
2012年网页设计趋势2
查看>>
atmega8 例程:INT1外部中断
查看>>
python类库32[多进程之Pool+Logging]
查看>>
现有portal项目(商业的和开源的)解决方案及优缺点
查看>>