轻量、友好、易维护的Unity3d框架。
QQ群 765086420
- 基于目前(2022.6.15)huatuo框架的更新情况,推荐使用unity3d 2020.3.33版本。
- 为当前版本安装il2cpp:UnityHub→安装→对应版本设置(齿轮图标)→添加模块(不存在这个选项的因为你没有从Unity3dHub安装这个版本)→il2cpp。
- 安装huatuo热更框架:Unity3d打开Cirilla→头顶工具栏→HuaTuo→manager…
-
项目配置表
Asset下建立文件夹(更改为你的项目名称),并在配置表中选定为需要进行开发的项目文件即可。
-
流程配置表
通过编辑器创建流程文件(或手动写继承流程Asbtract)并添加到流程配置表中,项目启动会自动进入入口流程。
-
打包途径
1.头顶工具栏→Cirilla→工具→资源管理器
2.直接build项目
-
build注意事项(https://focus-creative-games.github.io/huatuo/start_up/#注意事项)
-
热更
Cirilla认为并非只有UI业务才适用MVC架构,MVC是一种规范,不应该受限于某种具体的业务行为,应该把一切处理unity3d场景内相关的事务视为View层(如物体渲染、创建和销毁物体、控制物体变换等等),再根据业务划分不同粒度的Model和Controller以进行管理。
Cirilla采用IOS主动MVC的设计,Controller持有View与Model,V与M之间绝对隔离,V和M通过事件驱动主动通知C进行工作。
-
右键Hierarchy→CirillaView可创建两种View。其中UIView带有Canvas相关组件,为UI而设计的,其余并无差别。创建后,可在UIView中设计常用的菜单界面、ObjectView则可以用来设计常用的场景。完成后,拖制成预制体。
-
拖制成预制体后,在其中可以看到拖拽框和代码生成按钮。将View层下的、需要被生成到View层代码中以使用的子物体拖拽到框中,最后点击生成代码,就会生成相应的View层代码了。
-
Controller和Model的代码需要自己手动创建,并且继承相应的IController和IModel。
-
在流程中通过[Controller]标签依赖注入Controller实例(也可以通过mvc模块主动加载)。
-
因为View和Model相对隔离,并且只能被Controller所持有,所有V和M只允许在Controller中被注入实例。当然,View和Model可以被多个Controller同时持有,它们的实例也仅有且只有一个。
-
Controller持有的View和Model,可以通过MV提供的公共方法进行操作(当然也可以通过事件分发机制进行完全解耦,随你)。而View和Model则只能通过事件分发机制对Controller进行主动通讯。
Ciriila提供了一套以文件夹分类、0依赖为理念的资源管理策略,并提供了相应的打包工具和资源模块。build或在编辑器打包工具中进行打包,会自动搜索RawResources,以文件夹的形式分包进行打包,所依赖的资源一并打入相应的包中,所以包与包之间不存在依赖关系(为了减少文件冗余,应尽量将相同依赖的不同文件放在一个文件夹下)。打包过程中会将生成的项目代码dll也一并打包,具体信息在打包后会在控制台一一输出。
- 不同命名尾缀的文件夹:
-
_public
项目启动后立刻加载 并不再释放
-
_custom
手动加载和手动释放
-
_base
用来储存临时素材,打包的时候会忽略掉该文件夹以及子文件夹下的文件
-
无尾缀
根据使用情况动态加载和释放
-
基于控制反转和依赖注入的理念,基础模块通过Ioc容器进行绑定、加载和使用。
后续会根据业务情况总结迭代更多可复用的功能。
- 资源模块 -> IResModule
- 基于打包策略设计,资源统一管理。
- 使用简单,提供同步、异步加载、释放功能。
- 网络模块 -> INetModule
- 可继承的网络实现:WebSocket、TCP,提供连接、断连、接受、发送功能。
- 基于lambda的Http请求功能。
- 订阅器模块 -> IObserverModule
- 提供以枚举为ID、传递不定参的事件订阅、脱订、触发。
- 对象池管理模块 -> GoPoolModule
- 提供预制体注册、实例申请、实例回收等基本功能。
- 内部通过表校验和队列分配进行统一管理。
- 强烈要求使用此模块管理一切游戏对象,禁止实例化和销毁。
- 声音模块 -> IAudioModule
- 提供2D声音、定点声音和追随声音功能。
- 基于lambda的结束回调和心跳回调。
- CSV模块 -> ICSVModule(设计的不太好,后续会取缔掉)
- 读取csv文件到属性表
- 属性表写入csv文件
- MVC模块 -> IMVCModule
- 以ioc容器为基础,所有MVC代码均注册进ioc容器中,通过只允许依赖注入的方式限制MVC规范。
- 提供View层框架的相关编辑器工具和代码生成器。