UniRx对UnityEvent和UGUI的增强
UnityEvent和UI元素:
UnityEvent eventA;
void Start()
{
//UnityEvent
eventA.AsObservable()
.Subscribe(_ => {});
//基本UI元素事件:
button.OnClickAsObservable()
.Subscribe(_ => {
//DoSomething
});
toggle.OnValueChangeAsObservable()
.Subscribe(on => {
if(on) {}
});
//EventSystem各种事件:
img.OnBeginDragAsObservable()
.Subscribe(_=>{});
img.OnDragDragAsObservable()
.Subscribe(eventArgs=>{});
img.OnEndDragAsObservable()
.Subscribe(_=>{});
}
除了Observable增强,还⽀持了Subscribe的增强,例如SubscribeToText
和SubscribeToInteractable
。
public Toggle toggleTest;
public Button btnTest;
public Text txtTest;
void Start()
{
toggleTest.OnValueChangedAsObservable().SubscribeToInteractable(btnTest);
hp.AsObservable().SubscribeToText(txtTest);
}
对UIBehaviour的支持
Siki:UIBehaviour是所有UGUI空间的基类。
Siki:每个IXXXHandler就成为一个Trigger。
Siki:需要导入命名空间UniRx.Triggers。
Siki:具体参考ObservableTriggerExtensions.Component.cs。
ele.OnBeginDragAsObservable().Subscribe(dragEvent => {});
ele.OnDragAsObservable().Subscribe(dragEvent => {});
ele.OnEndDragAsObservable().Subscribe(dragEvent => {});
ele.OnPointerClickAsObservable().Subscribe(clickEvent => {});