if (mButtonClicked && mButtonState == ButtonState.None) { mButtonState = ButtonState.Clicked; }
这个在UniRx里的位置写错了吧?
if (mButtonClicked && mButtonState == ButtonState.None) { mButtonState = ButtonState.Clicked; }
这个在UniRx里的位置写错了吧?
言简意赅,不错!!!
在loadasync()后添加.AsAsyncOperationObservable()将其变成可视化
其中有一个重载方法是可以回调一个加载进度的变量,可以使用schedulednotifier<float>()进行保存
使用observable.Start(()=>{})可以启用线程
由于协程和线程都有oncomplate,所以都可以使用whenAll
observableOnMianThread,意思是把whenall结果转到主线程上,subscribe的回调就可以使用unity的API了
everyupdata()没有oncomplate生命周期,所以无法使用回调
使用unitx开启协程
Observable.FromCoroutine(_=>A());
observable支持转换为yield对象
IEnumerator Delay1Second(){
yield return Observable.Timer(TimeSpan.FromSeconds(1.0f)).ToYieldInstruction();
}
.select()是一个泛型,根据返回的值类型决定
unirx可以开启多条事件流,多个事件流可以通过merge进行事件流和并
button.interactable是一个布尔类型的值,设置为false则表示这个button不可以交互,即不可点击
reactiveproperty<>不能序列化
intReactiveproperty 可以进行序列化
drag事件需要成对出现有begindrag、drag、enddarg,否则会不生效
.first()获取第一个通过的事件,括号内可以添加条件进行过滤
.everyupdate()是一个事件源,每帧调用一次,会发送一个事件
Subscribe是事件接收者,接收everyupdate发送来的事件
.where()会把不符合括号内条件的事件过滤,符合则执行subscribe
事件本身可以是参数,但everyupdate本身没有参数,所以在where中不需要接收参数,括号内用_变量来表示不含参。
AddTo用于生命周期绑定,当这个函数的生命周期结束时就解绑删除
observable是一个事件流,可以调用unity的生命周期
Input.GetMouseButtonDown(0)
注释是进行一个鼠标抬起(按下?)的判断
Observable.EveryUpdate().Where()