unity3d下载的ugui如果用得不好非常的影響性能,可能很多人都不知道其实ugui是基于网格模型渲染的,一个ugui组件就是一个Meshui组件的Material为空,其实他是用了默认的Material我们在运行游戏的時候Canvas回把所有ui的Mesh合并成一个大的ShareMesh,用于渲染所以一般情况下,ui的DrawCall会比较少但是不一般的情况下,我们会用到动态的ui导致cpu实时在合并網格顶点,gup重新渲染整个ShareMesh这就很卡了,所以我们要尽量不要用动态的ui这怎么可能
扯了一下不相干的事,接下来我们来讲讲怎么来写一個简单的ui系统
一个好的框架,底层少不了接口所以我们创建一个UI的接口IView。
2.接下来我们来创建一个ui的基类UIBase
UIBase根据你们的需求可以相应的擴展,这里只写了ui类型和层级类型
3.然后我们随便创建一个界面UIMain
每次创建新的界面我们都在UIType上添加新的类型,用于界面的创建和销毁
4.最後我们写一个UIManager来管理所有的ui。
我写的这个ui系统是很简单的主要就是面向对象的思路展示,并不是作为一个框架中完整的UI系统来写的所鉯有需要的朋友可以自行拓展。
如果有关注我的朋友应该看过另一篇文章,我们可以创建一个UI的模版每次创建新的界面都会自动帮我們实现基类的方法。