重写了一套UI框架,思前想去还是重开一个文集,因为这部分内容和前面的关联不大,仅复用了少部分代码。

首先介绍一下环境,本框架基于UGUI,使用MVC架构思想,目前还是初版会在实际项目中不断优化本框架。

参考了一些游戏制作常用的规则:

1.不直接在任何UGUI上面挂代码(除非有一些特殊情况使用到某些绑定关系的独立功能或插件)
2.以panel为单位添加一个唯一的控制脚本编写UI逻辑,然后通过这个控制脚本来控制它下面其他的子控件
3.不能直接给按钮添加点击事件(所有的事件需要写在对应panel的脚本逻辑中)
4.UI的脚本逻辑不得直接调用修改数据层,通过发送点击事件通知数据层操作,再通过开放修改UI界面方法来修改界面显示
5.主场景维持在最小,团队开发可以开辟每个人自己的场景进行开发,主程以外团队所有人不得修改主场景,所有个人开发场景仅在开发阶段使用




ioc框架 unity 文档 unity mvc ui框架_android


EeveeUI框架.png


其实架构很简单,用一句话概括就是MVC中C作为核心,通过Event事件与V沟通,通过单例直接访问获取数据。
其他的与主逻辑无关的代码尽可能拆成单独的就行。
后面会逐个代码给大家讲一下架构过程。
这里单例就不重复了,可以参考这两篇:https://www.jianshu.com/p/b39614c900cdhttps://www.jianshu.com/p/bf51708a0201 事件系统可以参考这篇:https://www.jianshu.com/p/59f76c448f14 之前的东西基本就用到了这些,但是实际脚本有点优化改动,以最终版为准~

百度云地址:
链接: https://pan.baidu.com/s/1LLiX2I6q_bL4fV5-KD8hqA 提取码: 5dgw 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v3的分享


2021.4.15更新
实在不好意思,这么久才发现链接给错了-。-,上面那个是别人的框架,大家可以参考一下,我的是这个:
链接: https://pan.baidu.com/s/1n6sEXCZWHPQjr5zHulavAg 提取码: fsq2 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v3的分享


2021.4.25更新
在实际使用的过程中发现,注册的panel会出现丢失的情况(如运行状态下修改了脚本或脚本执行过程中出错等)说明ScriptableObject由于可以在运行时修改并保存修改,因此如果出错的话在加载后(虽然未执行修改操作)仍然会出现数据丢失的情况,鉴于此不稳定性,此处建议大家还是使用json文件格式储存信息,ScriptableObject仍然有待考验。本框架思路可以不变,注册保存可修改为使用json保存。