Unity-IOC-Unity
此类库为IOC
库的拓展,旨在提升Unity项目开发便捷性甚至性能.以更优雅、便捷和高性能的方式响应Unity
提供的各种事件回调.
入门
添加引用
通过Package Manager添加如下依赖:
Package | Description |
---|---|
https://github.com/kakashiio/Unity-Reflection.git#1.0.0 | Reflection 库 |
https://github.com/kakashiio/Unity-IOC.git#1.0.0 | IOC 库 |
https://github.com/kakashiio/Unity-IOC-Unity.git#1.0.0 | IOC-Unity 库 |
创建一个UnityIOCContainer
1 | ITypeContainer typeContainer = new TypeContainerCollection(new List<ITypeContainer> |
将上述代码添加到你应用程序启动的位置.
根据需要实现一下Unity相关的接口
- IUnityUpdate
- IUnityLateUpdate
- IUnityFixedUpdate
- IUnityGUI
- IUnityApplication
- IUnityEditor
假设你希望每帧调用一段代码.传统的方式为创建一个MonoBehaviour
,在该MonoBehaviour
的Update
方法中增加你的方法.而通过上面添加引用
引入的IOC
库和IOC-Unity
之后,可以使用以下代码实现:
1 | [ ] |
这样就轻松实现了上述需求.
IUnityUpdate
的代码为IOC-Unity
库提供,其代码非常简单,如下所示:
1 | public interface IUnityUpdate |
这种方式甚至比传统方式性能更高!
其他组件
CoroutineManager
用于帮助更方便执行协程.如果你希望执行一些协程,那么可以编写如下代码:
1 | [ ] |
未来
会增加更多Unity API和组件支持以加速游戏开发. 如果你有更好建议,也期待你指出.
完整的Package工程地址在https://github.com/kakashiio/Unity-IOC-Unity
致谢
感谢百忙之中阅读本文,如果觉得我的文章帮到了你,欢迎:转载、关注git、为仓库增加star等.你的简单回馈将是我继续创作的动力.
Unity-IOC-Unity