Unity 切换Shader耗CPU大
来源:互联网 发布:淘宝代销退货地址哪里 编辑:程序博客网 时间:2024/05/16 15:53
在游戏中,怪物或者人受到攻击后,会有变白的效果。这个效果是Shader实现的。在判定被攻击的时候切换Shader。
Shader shader = getBeAttackShader();material.shader = shader;
static Shader s_BeattackShader = null; protected virtual Shader getBeAttackShader() { if(s_BeattackShader == null) { s_BeattackShader = Shader.Find("Custom/attack"); } return s_BeattackShader; }
代码没有问题,但是在4S等低端设备上,被攻击时会明显卡顿,时间长达1S。
于是用Unity的性能分析器,在被攻击时暂停,可以看到:
在OpenGL中用过Shader的同学们看到下面的函数名字就知道问题所在了
Shader.CreateGPUProgram()
这个函数过程就是创建GLProgram链接Shader的一个过程,在Unity3d中的Shader.Find()是直接创建GLProgram的。
如果是自己去写引擎,GLProgram一般在初始化的时候就会创建完毕,然后用类似GLProgramManager管理。
Unity中的问题我们也可以用这个方法解决,但是Unity提供了简便方法。
点击Editor - Project Setting - Graphics
右侧 Always Included Shaders,把我们需要使用的Shader拖到里面去吧!
0 0
- Unity 切换Shader耗CPU大
- Unity场景切换过度效果(Shader)
- unity shader
- Unity Shader
- Unity-Shader
- unity shader
- Unity Shader
- Unity Shader
- Unity Shader
- unity shader
- Unity描边[Unity Shader]
- 如何分析最耗CPU的线程
- 找到最耗CPU的java线程
- 找到最耗CPU的java线程
- jstack分析最耗CPU的代码
- Shader以及Unity中的Shader
- Unity Shader 二 发光Shader
- Unity Shader简单Shader一
- IOS应用的发布
- height:100%失效
- 如何在20分钟内写一个成功的博客
- Windows Server2008R2使用Excel
- Jquery Mobile data-role常用的类型
- Unity 切换Shader耗CPU大
- 法摄影师创意照展现儿童勇战梦中怪兽
- oracle 触发器before和after数据区别
- conversion to dalvik format failed with error 1
- Android WifiDisplay分析三:RTSP交互以及数据传输
- poj 1466 Girls and Boys 最大独立集=n-最小覆盖点
- 最长公共子序列
- hdu2030 汉字统计
- hud 2523 Vote