Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UniRx如何通过将自身与另一个流相结合来发布流中的新值_C#_Unity3d_Reactive Programming_Unirx - Fatal编程技术网

C# UniRx如何通过将自身与另一个流相结合来发布流中的新值

C# UniRx如何通过将自身与另一个流相结合来发布流中的新值,c#,unity3d,reactive-programming,unirx,C#,Unity3d,Reactive Programming,Unirx,我试图通过将速度流与对象位置流相结合并在该位置流中发布新位置来更新对象位置流,我通过在Start()中订阅组合流来实现这一点: 并在Update()中发布新位置: 这种方法是与反应式编程范式兼容,还是以命令式思维滥用rx操作员? 如果是这样的话,有人能帮我找到正确的方法吗。更新Update()方法中的observable似乎有点奇怪。Rx更多的是避免Update()。它更适合于偶尔对某些事件做出反应。你能更完整地描述一下你想要达到的目标吗?@kolodi谢谢你的回复。我想改变我的游戏对象位置的基

我试图通过将速度流与对象位置流相结合并在该位置流中发布新位置来更新对象位置流,我通过在Start()中订阅组合流来实现这一点:

并在Update()中发布新位置:

这种方法是与反应式编程范式兼容,还是以命令式思维滥用rx操作员?
如果是这样的话,有人能帮我找到正确的方法吗。

更新Update()方法中的observable似乎有点奇怪。Rx更多的是避免Update()。它更适合于偶尔对某些事件做出反应。你能更完整地描述一下你想要达到的目标吗?@kolodi谢谢你的回复。我想改变我的游戏对象位置的基础上2流:它的位置和速度,在每一帧我希望速度被添加到当前位置,并使下一个位置。我正在尝试找出正确的方法。如果您需要使用Update()方法并操作同一个对象,我看不到Rx stream在这里的实际用途。这可能是有原因的,如果你把流放在外面,让那么多的对象可以更新/订阅它,这样你就可以对此有一些反应。对于您的特定用例,在使用流时不添加任何值,在更新方法中,您可以立即编写所有业务逻辑。此外,我从未使用每帧都会更新的流或反应属性,Rx更多的是关于事件驱动的架构,而不是基于游戏循环的架构。
Observable.CombineLatest(position_stream, speed_stream, (position, speed) =>
    {
        return position + speed;
    }).Subscribe(a => new_position = a);
position_stream.OnNext(new_position);