本文译者:郑洪智 - 你的技术探路者
本文翻译自UniRx(https://github.com/neuecc/UniRx)插件的ReadMe
这个插件是我特别喜欢的一个插件,希望能将这种技术思想传播给大家
UniRx是什么?
UniRx (Unity响应式编程插件) 重写了.Net的响应式扩展。.Net官方的Rx很棒,但是在Unity中无法使用,并且与IOS的IL2CPP有兼容性问题。这个库这些问题并且添加了一些Unity专属的工具类。 支持的平台有:PC/Mac/Android/iOS/WP8/WindowsStore/等等,并且支持Unity4.6之后的所有版本。
前情回顾
如何让你的代码更简洁
如何简化网络操作
如何和协程一起使用
让多线程更简单
使用触发器让代码更简洁
Observable 生命周期管理
将Unity回调转为IObservable
调试Debugging
子线程转到主线程执行
基于帧数的时间操作
微协程
uGUI集成
MVP设计模式
ReactiveCommand, AsyncReactiveCommand
ReactiveCommand 抽象了按钮的interactable属性。
AsyncReactiveCommand是ReactiveCommand的变种,它的 (通常绑定到button的interactable) 在异步操作完成后变为false。
有三个构造方法。
- CanExecute is changed to false until async execution finished
- 当 canExecuteSource 变为 true 并且没有在执行的时候 CanExecute 变为true 。
- 在多个AsyncReactiveCommands之间共享运行状态,如果一个 AsyncReactiveCommand 在执行,那么其他的 AsyncReactiveCommands(拥有相同 sharedCanExecute 属性) 的 CanExecute 变为 false 直到异步操作完成。
MessageBroker, AsyncMessageBroker(消息代理,异步消息代理)
MessageBroker 是基于 Rx 的内存发布订阅(pubsub)系统,基于类型筛选。
AsyncMessageBroker 是 MessageBroker 的一个变种, 可以处理异步的 Publish 调用。
UniRx.Toolkit
包含了一些Rx风格的工具。目前报错 和 。可以 , and (在rent操作之前预加载对象池)。
已完结,请关注“洪流学堂”公众号获取全部内容
领取专属 10元无门槛券
私享最新 技术干货