首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可观察的生命周期管理-如何从输入轴生成数据流?

可观察的生命周期管理-如何从输入轴生成数据流?
EN

Stack Overflow用户
提问于 2016-11-21 17:55:59
回答 1查看 293关注 0票数 1

Unity 5.4.3f1。

我正在学习以UniRx为目标的反应式编程。当我试图从输入轴创建一个简单的数据流时。

代码语言:javascript
复制
   public IObservable<float> Movement;

void Start () 
{
    this.Movement = Observable.EveryUpdate()
                    .Select(_ => Input.GetAxis("Horizontal") )
                    .Subscribe(f => Debug.Log(f))
                    .AddTo(this);
}

我得到了这个错误:

代码语言:javascript
复制
Error CS0266: Cannot implicitly convert type `System.IDisposable' to `UniRx.IObservable<float>'. An explicit conversion exists (are you missing a cast?) (CS0266) (Assembly-CSharp)

来自UniRx的示例可以很好地编译。

代码语言:javascript
复制
    Observable.IntervalFrame(30).Subscribe(x => Debug.Log(x)).AddTo(this);

我看不出两者有多大的区别。我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-11-21 18:03:34

好吧,我是愚蠢的。创建observable和订阅应该是两件不同的事情。当它们分开时,代码编译得很好。

代码语言:javascript
复制
public IObservable<float> Movement;

void Start () 
{
    this.Movement = Observable.EveryUpdate()
        .Select(_ => Input.GetAxis("Horizontal") )
        .Where( f => f > 0.01f || f < -0.01f);

    this.Movement.Subscribe(f => Debug.Log(f))
        .AddTo(this);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40717332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档