User Interface (UI)系统是应用与用户交互的窗口,合理地设置UI 可以让用户获得更好的体验。
文 / 丁建雄
图 / Mary Anna
小白是单纯为兴趣而写作的独立创作人,如果您喜欢小白的文章,欢迎关注、交流、分享(引用请链接到本文)。
- unity 使用UGUI 作为自带的UI 编辑器。
- 所有UI 元素都必须作为Canvas 的子对象存在,一个Canvas 可以挂载多个子对象,一个场景中可以存在多个Canvas 对象。
- Event System 的作用是用于处理场景中的交互事件。
- Canvas 的三种渲染模式(render mode):
Screen Space-Overlay:默认渲染模式,优先级最高,不会被其他任何对象覆盖,大小由Game 视图大小决定。
Screen Space-Camera:这种渲染模式基本和上一个一致,而由于是相机跟随,如果屏幕尺寸改变,Canvas 会自动重新适应屏幕尺寸。
World Space : VR项目必须以这种模式,这种模式下Canvas 对象会跟其他所有2D对象一样存在于场景中。 - 在Canvas 内部,位于下方的组件会优先于上方的组件显示在场景视图的前面而发生遮挡。
- 交互元素包括:Button(按钮),Toggle(开关),Slider(滑动条)等,通过这些控件,可以响应简单的交互效果。可以通过设置一个UIController 对象来统一控制UI 交互的逻辑。
- 布局属性理解:布局在新版本的UI系统中有很不错的改动,引入了Anchor(锚点)和Pivot(轴点),关于这两个属性的理解,不少人都很迷糊,网上找了很多博客文章,写得也是含糊不清。这里附上官方文档:
https://docs.unity3d.com/Manual/UIBasicLayout.html
其实,很好理解,恰如其名:锚点就是固定相对位置不动的点,如果父节点(屏幕)产生尺度缩放,子节点能保证与anchor 的距离保持不变,以此保证适配不同的屏幕;轴点就是旋转中心,旋转以此为中心而非几何中心。
这篇中文博客讲解还行:https://blog.csdn.net/duotemplar/article/details/76644035,可以用于辅助理解。
结束语
UI 先简单了解一下,具体到要用到某块知识的时候再具体学习一下。其实,由于主要处理3D物体,Unity 开发中可能没有基于界面的应用那么依赖UI,更多的是通过设置UI 的属性来设置功能性的效果。广义上讲,整个场景其实就是一个巨大的UI(User Interface)。