UniRx---Select

本文深入解析Unity中的响应式编程框架UniRx中Select方法的应用。Select作为转换器,能将事件源的数据转换为不同类型的参数,如从int型的Hp属性转换为bool型,或结合发射次数进行统计工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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("点击了"+_+"次"));

统计鼠标单击过的次数

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值