Unity比较好的学习路线?

它专注于解决异步逻辑使得异步逻辑的实现?加简洁优雅。

每点击一下鼠标就会有一次输出

再次运行后,点击多次鼠标会发现控制台只输出一次log信息,这是UniRx一个很簡单的应用

但是如果使用传统的方式实现”只处?第一次鼠标点击事件“这个功能,要写很多?的代码还要去创建?个成员变?来记錄点击次数,或者用一个布尔值记录是否点击过并且还要在脚本中写一个Update方法去监听鼠标点击事件。

如果在Update方法中除?要实现鼠标事件监听这个功能之外,还要实现其他的功能那么在Update?就会有着大?的状态判断的逻辑,会造成代码可读性的降低

而UniRx提供了?一种编程思维,使得平时一些比较难实现和处理的异步逻辑(比如上文这种)使用UniRx可以轻松搞定,并且不失代码的可读性

当然UniRx的强大?仅仅如此。

? 优雅实现MVP(MVC)架构模式

最最重要的是,UniRx可以提高我们的编码效率还给我们的大脑提供了一个强有?的编程模型。

所以UniRx 非常值得研究和学习

为?么要使用UniRx

因为游戏很多的系统在时间上是异步的,Unity开发者要实现的异步(在时间上)任务有很多。

这也是为什么 Unity 官?提供叻 Coroutine (协程)这样的概念

一般来说,网络操作需要用到 WWW 和 Coroutine但是使用 Coroutine 对于异步操作来说不是一个好的选择,

会造成代码大面积的强耦合

Rx僦是为了解决异步问题而来的。Rx可以让异步操作更优雅

在游戏中,?部分的逻辑都是在时间上异步的?如动画的播放、声?的播放、?络请求、资源加载/

我们往往在进?以上逻辑实现的时候经常?到?量的回调,最终随着项?的扩张导致传说中的”回调地狱”降临

相對较好地?法则是使?消息/事件的发送,结果导致“消息满天?”导致代码?常难阅读。

使? Coroutine 也是?常不错的但是 Coroutine 本身的定义,是以?个?法的格式来定义的写起来

而UniRx 的出现刚好解决了这个问题,它介于回调和事件之间

它也?到了回调,只不过事件进行组织之后呮有?个简单的回调就可以进?事件的处理了。

总结为?句话就是游戏本身有?量的(时间上)异步逻辑,而 UniRx 恰好擅?处理(时间上)異步

? 实践并详细了解开发中最常?的 UniRx API

QFramework作者凉鞋大大的课程,可以的话大家多支持一波~

我要回帖

 

随机推荐