UGUI的简介:
UGUI系统是从Unity 4.6开始,被集成到Unity的编辑器中Unity官方给这个新的UI系统赋予的标签是:灵活,快速和可视化!,简单来说对于开发者而言就是有三个优点:效率高效果好,易于使用,扩展,以及与Unity的兼容性高。
在不使用任何代码的前提下,就可以简单快速额在游戏中建立其一套UI界面,这在过去是绝对不可想想的,但是新的UI系统确实做到了这一点因为Unity预定义了很多常见的组件,它们以“游戏对象”的形式存在于游戏场景中。
4.6之前的UI
void OnGUI(){
//添加一个图片
GUI.DrawTexture(new Rext(L LeftX,eftY,miniMapWidth,miniMapHwight),backGround);
//做一个按钮,Rect(屏幕的位置,大小),
if(GUI.Button(new Rect(30,100,100,50),"按钮上的文字")){....按下按钮要执行的语句...}
}
与NGUI的区别:
1,uGUI的Canvas有世界坐标和屏幕坐标
2,uGUI的Image可以使用material
3,uGUI通过Mask来剪裁,为NGUI通过Panel的Clip
4,NGUI的渲染先后是通过Widget的Depth。而uGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层
5,uGUI不需要绑定Colliders,UI可以自动拦截事件
6,uGUI的Anchor是相对父对象,没有提供高级选项,
7,UGUI没有Atlas,使用Sprite
8,uGUI的事件需要实现事件系统的接口,但写起来也算简单
Canvas简介:
Render Mode - 渲染模式
Canvas 中的 Render Mode 设置,用来决定它以屏幕空间进行渲染还是以世界空间进行渲染,有三种设置方式。
1、Screen Space - Overlay
这种渲染模式将屏幕上的 UI 元素渲染在场景的最顶层。如果屏幕的大小或者分辨率发生了变化,Canvas 也会自动改变大小,和屏幕的保持一致。
2、Screen Space - Camera
这个渲染模式和 Screen Space - Overlay 相似,在这种模式下,Canvas 会处于指定摄像机的前方,距离可以调整。UI 元素通过这个摄像机来渲染,摄像机的设置会影响 UI 的外观。如果摄像机设置为了透视,UI 元素也会以透视呈现,并且透视的形变量可以通过摄像机的 Field of View 来控制。如果屏幕的大小或者分辨率发生了变化,或者摄像机的视锥发生了变化,Canvas 同时也会改变大小,和屏幕保持一致。
3、World Space
在这种渲染模式下,Canvas 就和场景中的其他游戏对象一样。Canvas 的大小能够手动地通过 RectTransform 来设置,并且 UI 元素会根据在 3D 场景中的放置位置,来决定渲染在场景中其他对象的前面还是后面。当我们想让 UI 成为世界场景的一部分时非常有用。这也被称作“叙事化界面(Diegetic Interface)"。