UGUI是Unity5.0版本以后才开始出现,而NGUI是在4.几的版本已经出现了,所以UGUI没有NGUI功能完善。UGUI与NGUI最大的区别在于图集的方式,在UGUI中是不存在图集的,只有当项目打包成程序的时候,Unity就会自动把图片或者Sprite打包成图集。
Canvas UI渲染方式
画布,所有的UGUI控件都必须在它的范围内,我们也可以创建多个Canvas
右键单击,我们先创建一个Canvas,在创建这个的时候我们会发现他会自动生成一个EventSystem,(这个在后边会讲到),这是个事件系统在项目中有且只有一个。同时我们也发现,UGUI跟NGUI第一个区别就是没有摄像机,UGUI是通过渲染器直接渲染进去的。我们接着看Canvas的 Inspector面板
- RectTransform 这个在每个UGUI元素上边都带的有,而这个是灰色的我们不能修改。
- Canvas
- Render Mode
1:Screen Space-Overlay:这种模式层级视图中不需要任何的摄像机,且UI出现在所有摄像机的最前面。
而其中的Target Display这个适合Game视图和MainCamera都是相互对应的
2:Screen Space-Camera:这种模式需要绑定一个UICamrea,这种和NGUI 的渲染模式一样,甚至我们选这个的时候,UGUI的一些控件可能不能正常工作,(它支持UI前面显示3D对象和粒子系统,这句话是我在网上看到的,不甚理解,更不知真假)。
3:World Space:此时的UGUI和3D物体是一样的,可以被其他物体遮罩,UI离摄像机越远越小。
- CanvasScaler 适配方式
-
UI Scale Mode字面理解就是UI缩放模式
1 Constant Pixel Size 固定像素,不缩放。
2 Scale With Screen Size 根据屏幕大小来缩放,下边的几个选项就是适配方式,大家可以自行研究
3 Constant Physical Size 固定的物理尺寸(个人理解固定物体在世界坐标系的大小,不缩放)
- Graphic Raycaster(不甚理解,猜测估计跟射线碰撞有关系)
注意
我们以前在NGUI 用代码去改变UI控件元素时,直接用脚本获取他的组件就可以,但是在UGUI中,我们需要注意几个点
- 首先需要添加命名空间UnityEngine.UI
- 加载预制体的时候要用泛型或者反射这两种方法去添加,用普通的会加载不了。
-
改变他的图片时,后边不再是String型,而Sprite,我们要注意