随风逐叶 随风逐叶
首页
  • Quick Reference (opens new window)
  • EgretEngine开发者文档 (opens new window)
  • TinaX框架
  • SSH教程
  • VSCode插件开发
关于
  • 分类
  • 标签
  • 归档

rontian

从事游戏开发10多年的老菜鸟一枚!
首页
  • Quick Reference (opens new window)
  • EgretEngine开发者文档 (opens new window)
  • TinaX框架
  • SSH教程
  • VSCode插件开发
关于
  • 分类
  • 标签
  • 归档
  • 框架简介
  • TinaX.Core
  • 基于TinaX创建一个扩展库
  • TinaX.VFS
  • TinaX.UIKit
  • TinaX.I18N
  • TinaX.Lua
  • XLua

  • Google.Protobuf
  • Lua-Protobuf
  • 一些优秀的第三方库

    • CatLib

    • UniRx

      • 简介
        • 基础教程
        • 官方入门文档
        • UniRx入门系列一
        • UniRx入门系列二
        • UniRx入门系列三
        • UniRx入门系列四
        • UniRx入门系列五
      • UniTask

    目录

    简介

    # UniRx

    # 什么是UniRx?

    UniRx(Unity的响应式编程框架)是.Net响应式编程框架的重新实现版本。官方的Rx的实现方式是非常棒的。但是,在Unity中使用会有一些问题;在IOS的IL2CPP中有兼容性的问题。UniRx修复这些问题,并针对Unity添加了一些特别的工具。支持的平台包括PC/Mac/Android/iOS/WebGL/WindowsStore/等等。

    # 为什么使用Rx?

    通常,在Unity对网络操作要求使用WWW和Coroutine.但是出于以下几点原因(或者其它原因)使用协程来进行异步操作并不顺手:

    1.虽然协程的返回类型必须是IEnumerator,但是协程不能返回任何值。 2.因为yield return 语句不能被try-catch结构体包裹,协程中不能处理异常。

    这种缺乏可组合性导致程序的紧耦合,往往造成IEnumators中逻辑过于复杂。

    Rx可以解决异步调用的“伤痛”,Rx 是一个使用可观察集合和LINQ风格查询运算符组合成的基于异步和基于事件的可编程库。

    游戏循环(every Update,OnCollisionEnter),传感器数据(Kinect,Leap Motion,VR Input 等等)这些类型的事件。Rx将事件表示为响应式序列。通过使用LINQ查询运算符,Rx变得容易组合且支持基于时间的操作。

    Unity通常是单线程的,但是UniRx促进了多线程joins、cancel 访问GameObject,等等。

    UniRx为UGUI提供了UI编程。所有的UI事件(clicked,valuechanged,等)均可以被转化为UniRx的事件流。

    Unity 在2017之后支持C# 中的astnc/await。UniRx 为Unity提供了更轻量、强大的async/await集成。请看: Cysharp/UniTask (opens new window).

    上次更新: 2023/10/17, 14:09:52 访问次数: 0
    分片流
    基础教程

    ← 分片流 基础教程→

    最近更新
    01
    一些Shell常用的功能写法整理
    10-20
    02
    删除git仓库submodule的步骤
    10-20
    03
    django基本命令
    10-16
    更多文章>
    Copyright © 2017-2025 随风逐叶
    沪ICP备18008791号-1 | 沪公网安备31011502401077号

    网站访问总次数: 0次
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式