我们打开上一篇63QFrameWork框架重构OnGUI的项目,
OnGUI优点:
- 简单易用:OnGUI是基于代码的UI系统,对于简单的调试界面或者小型项目来说,可以快速实现UI需求。
- 即时更新:OnGUI的UI元素是即时更新的,适合需要实时反馈的调试工具。
- 无需额外的组件:使用OnGUI不需要在场景中添加额外的UI组件,所有的UI元素都是通过代码动态创建的。
- 适合快速原型开发:在项目早期,开发者可以使用OnGUI快速搭建UI原型,进行功能测试。
OnGUI缺点:
有一些局限性,比如它不适合用于复杂的UI设计,因为它缺乏UGUI那样的布局和设计工具。此外,OnGUI的UI元素是在代码中硬编码的,这使得在项目后期进行UI调整时可能比较困难。
总的来说,UGUI更适合用于开发复杂的、需要高度定制的UI系统,而OnGUI则更适合快速开发和调试。开发者可以根据项目的需求和团队的技能选择合适的UI系统。
UGUI优点:
- 引擎内置:UGUI是Unity官方提供的UI系统,与Unity编辑器和游戏引擎紧密集成。
- 灵活性和可视化:UGUI提供了灵活的布局系统,支持锚点和相对布局,使得UI元素可以很好地适应不同的屏幕尺寸。同时,它支持可视化编辑,可以在Unity编辑器中直接看到UI元素的最终效果。
- 性能优化:UGUI使用Canvas作为UI的根节点,支持图形合批(Batching),减少了Draw Call,提高了渲染效率。
- 丰富的组件和事件系统:UGUI提供了一系列的UI组件,如按钮、文本、滚动视图等,并且拥有完整的事件系统,方便开发者实现交互逻辑。
- 材质和Shader支持:UGUI允许使用自定义材质和Shader,为UI元素提供更多的视觉效果。
- 国际化支持:UGUI支持多语言,方便进行本地化处理。
本章要做的事情是用UGUI实现道具栏案例
首先打开Canvas预制体
重命名UISlotRoot
复制测试增加位置距离
测试好后删除将UISlot从UISlotRoot的子物体中拖拽至与UISlotRoot同级别
将Canvas重命名为UGUCanvas
创建UISlot脚本绑定至UISlot身上
对UGUICanvas对象增加QFrameWork的组件View Controller
将文件夹位置拖拽至 代码生成设置的位置区域
点击生成代码
对UISlot对象 和 UISlotRoot对象 增加QFrameWork的组件Bind
将UISlot对象的绑定类型 设置为 自己(方便父物体UGUICanvas在父类中调用子类UISlot.cs中的数据字段)
将UISlotRoot对象 的Bind类型设置为 UnityEngine.RectTransform
再次对UGUICanvas对象的View Controller组件 点击生成代码
编写脚本:UGUICanvas.cs
点击运行即可实现生成自定义类ItemKit(背包系统类)数据列表的四个Slot位置
(上几篇文章所写)
本文只其查看提示作用
在UISlot下创建Text文本重命名为Count
设置Text文本
再创建Text文本重命名为Name
设置文本Name
修改脚本:UISlot.cs
将Text文本Count、Name拖拽至UISlot组件的脚本框选中
修改脚本:UGUICanvas
运行项目
本章利用QFrameWork插件中的Bind与View Controller组件调用背包系统脚本(ItemKit.cs)实现生成ItemKit的数据Slots列表中的四个Slot插槽对象
接下来的文章内容:
1.QFrameWork背包案例UGUI
2.窗口可拖拽脚本
3.点击名称寻找地点功能
4.隐藏怪物的生成
5.怪物I攻击范围内的主动攻击
6.掉落坐骑蛋的获取
7.异步传送转换场景
以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。
具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》
【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)https://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6