NGUI -- UISprite和UITexture的区别和选择
2015-03-30 17:49
281 查看
一. UISprite和UITexture的区别
NGUI中也有UITexture的概念,其功能和用途上和UISprite有很大的相似之处,都是为了显示一些图片资源。但是UITexture和UISprite最大的区别在于,UITexture是一张独立的图片,不依托于任何图集,这张Texture有自己的材质和shader,每一个UITexture都将消耗一个DrawCall去渲染,每一个UITexture都将独立进行加载。
二.UISprite和UITexture的选择
1.什么情况下使用UITexture
(1)当图片过大,不适合合成图集的时候,可以使用UITexture,此时要尽量的保证图片的宽高是2的N次方。
(2)当图片为2的N次方,但出现的频率不高时,可以使用UITexture。例如游戏的背景和Logo。
(3)修改更改特别频繁的图片,为了减少每次更新维护的麻烦,可以考了使用UITexture。
(4)如果图片很小且多处会使用到(例如按钮 == )尽量将图片放入图集,通过精灵的方式使用。
总结:UITexture的功能是在屏幕上显示一张图片,在这一点上它和UISprite有着相似的功能,但是UITexture会消耗单独的DrawCall去渲染,并会单独加载进内存,所以会增大程序性能的开销。
2.什么情况下使用UISprite
(1)sprite对于NGUI来说,是非常基础的元件,经常不会独立使用。例如进度条的Foreground和Background。
(2)如果要显示一张图片,它的形状不规则,长宽不是2的N次方,那么一定要使用UISprite。因为unity对非2的N次方的图片处理要慢很多。
(3)如果这个UI元件频繁的出现,那么最好使用UISprite,因为这样它就可以和图集一起被载入内存,并不用新增一个DrawCall去渲染它。
(4)对于一些展示型的图片,不会变化,只是起一个展示的作用,例如弹框上的花纹装饰,顶部的花圈==。一般都以UISprite的方式来制作和展示。
NGUI中也有UITexture的概念,其功能和用途上和UISprite有很大的相似之处,都是为了显示一些图片资源。但是UITexture和UISprite最大的区别在于,UITexture是一张独立的图片,不依托于任何图集,这张Texture有自己的材质和shader,每一个UITexture都将消耗一个DrawCall去渲染,每一个UITexture都将独立进行加载。
二.UISprite和UITexture的选择
1.什么情况下使用UITexture
(1)当图片过大,不适合合成图集的时候,可以使用UITexture,此时要尽量的保证图片的宽高是2的N次方。
(2)当图片为2的N次方,但出现的频率不高时,可以使用UITexture。例如游戏的背景和Logo。
(3)修改更改特别频繁的图片,为了减少每次更新维护的麻烦,可以考了使用UITexture。
(4)如果图片很小且多处会使用到(例如按钮 == )尽量将图片放入图集,通过精灵的方式使用。
总结:UITexture的功能是在屏幕上显示一张图片,在这一点上它和UISprite有着相似的功能,但是UITexture会消耗单独的DrawCall去渲染,并会单独加载进内存,所以会增大程序性能的开销。
2.什么情况下使用UISprite
(1)sprite对于NGUI来说,是非常基础的元件,经常不会独立使用。例如进度条的Foreground和Background。
(2)如果要显示一张图片,它的形状不规则,长宽不是2的N次方,那么一定要使用UISprite。因为unity对非2的N次方的图片处理要慢很多。
(3)如果这个UI元件频繁的出现,那么最好使用UISprite,因为这样它就可以和图集一起被载入内存,并不用新增一个DrawCall去渲染它。
(4)对于一些展示型的图片,不会变化,只是起一个展示的作用,例如弹框上的花纹装饰,顶部的花圈==。一般都以UISprite的方式来制作和展示。
相关文章推荐
- NGUI的流光shader解决方案(二)(支持UITexture和使用图集的UISprite)
- 对NGUI的UISprite和UITexture进行裁剪,圆形裁剪
- [Shader]对NGUI的UISprite和UITexture进行裁剪(scrollview + 遮罩)
- NGUI:浅谈NGUI中UISprite和UITexture
- NGUI UISprite和UITexture 的遮罩思路
- NGUI的UITexture和UISprite的比较【NGUI3.5.8】
- Unity3d NGUI的drawcall,UISprite与UITexture
- [Shader]对NGUI的UISprite和UITexture进行裁剪
- NGUI的流光shader解决方案(一)(支持UITexture和使用图集的UISprite)
- NGUI__UITexture
- Eclipse版本控制插件Subclipse与Subversive的区别与选择
- JSHint 与 JSLint 的区别与选择
- 破坏神(2)NGUI实现角色选择界面
- 对比WDCP面板与AMH面板的区别与选择
- 分治策略、动态规划、贪婪选择以及递归之间的关系与区别(-)
- PHP中抽象类、接口的区别与选择分析
- Java中 String类、StringBuilder类、StringBuffer类 区别与如何选择
- aws 上选择 linux 版本后面的 HVM 和 PV 有什么区别?
- 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
- mysql和oracle的区别(功能性能、选择、使用它们时的sql等对比)