目前工程项目分为多个Scene
- main 作为入口场景用于加载其他的场景信息
- service 用于启动服务器等server信息
- login 用于登录界面和进入房间选项
- room 用于主场景界面
关于StrangeIOC
![](https://strangeioc.github.io/strangeioc/class-flow.png)
- 关于StrangeIOC框架 刚看过一遍
- 框架学习笔记:Unity3D的MVC框架——StrangeIoC
- Unity StrangeIoc框架
- StrangeIOC MVCS框架介绍及进阶 值得阅读,刚看了开头
- Unity StrangeIoc 框架介绍 译文
- 相关译文
- 进阶方面
Strange: the IoC framework for Unity 读书笔记
原文
译文
重新排版和翻译了译文的部分内容
介绍
StrangeIoC是一个轻量高扩展性的控制反转框架,为C#和Unity设计
- 一个支持各种绑定的核心的绑定框架
- 依赖注入
- 映射为单例、值或工厂(每次需要时创建一个新的实例)
- 命名注入
- 构造函数注入或者setter注入(可以理解为属性注入)
- 标记指定的构造函数
- 注入到MonoBehaviours
- 多态绑定 : 可以绑定接口或者实体类
- 反射绑定,显著减少采用反射的开销
- 两种风格的共享事件机制
- 可以发送消息(event or signal)到程序的任意位置
- 为本地通信映射本地的事件桥
- 都会映射事件到相应的命令类来分离逻辑
- 使用新的 signal 实现来增加类型安全保证,并且减小了类型强制转换的开销
- MonoBehaviour中介
- 帮助分离view和逻辑
- 隔离unity特有的代码与其他逻辑代码
- 可选的MVCS结构
- 多个context
- 多个子控件(子场景)单独运行,或者运行在主APP中
- 允许context之剑通信
- 扩展简单,可以自建新的绑定器
目录介绍
- Framework 包含构成Strange的主要类
- Extensions 库函数
- tests 单元测试
1.绑定
关于Signal的使用
signal 不一定需要和command绑定,只需要自行绑定单例就可以了
//CrossContext 是用于跨模板和跨场景用的
injectionBinder.Bind<SomeSignal>().ToSingleton().CrossContext();
关于多个Context的处理
unity框架strangeioc研究分享
Crossing Contexts with StrangeIoC
关于绑定MonoBehaviour的管理类
将会出现无法注入[Inject]参数的情况
注入 原理相关
injectionBinder.Bind (viewType).ToValue (view).ToInject(false);
injectionBinder.injector.Inject (mediator);
injectionBinder.Unbind(viewType);
网友评论