UniRx---Select

UniRx中所有可订阅的对象都是一种事件源,并且可以传递给订阅者一些参数

而Select,它就像一种转换器

把事件源传递过来的参数 转换成另外一种形式  

转换前后的类型也可以不同

比如你有一个reactive的int属性Hp(响应式属性, 或者说可订阅的属性,是UniRx的魅力之一,语法简洁,提供订阅功能,观察属性的变化)

本来这个事件源传递的是一个int型的参数

而Hp.Select(a=>a<=0) 这样的一个事件源就成了一个传递bool型参数的事件源

此外 Select还有一个重载版本 他需要额外带int型参数的转换器(selector)  而每次发射数据时会把发射次数给你

可以使用这个重载做统计发射次数的工作

比如这样

 Observable.EveryUpdate().Where(_=>Input.GetMouseButtonDown(0)). Select((_, index) =>index)
.Subscribe(_ => print("点击了"+_+"次"));

统计鼠标单击过的次数

猜你喜欢

转载自blog.csdn.net/zwlstc/article/details/84846141