如果你曾经希望在 Unity 中使用 React 的声明性组件式工作流来构建 UI,那么我想与你分享我正在开发的一个开源库,它被称为 Rish(R[eact]ish)。

它是什么?

Rish 是一个专门为 Unity 开发的、基于元素的 UI 库。它取了 web 开发中你们可能喜欢的概念(例如基于状态的声明性组件),并将其带入 Unity。它完全在 C# 中编写,并使用 UI Toolkit 作为渲染层。

那为什么?

  • React-ish 工作流: 以可预测和组件驱动的方式来编写 UI 代码。使 UI 确定性,丢弃冲突 UI的问题。
  • 声明性语法: Describe 给 Rish 你的 UI 应该是什么样子。你告诉电脑要做什么,而不是如何做。
  • 极其简单的版本控制: 由于所有 UI 代码均定义在代码中,因此你不需要处理场景或Prefab 的合并冲突。
  • 纯粹的 C#: 我看到其他人尝试将 React 工作流带入 Unity,但都依赖于不同的技术栈之间的奇怪桥梁,容易安装和使用,并且有向 后兼容性问题。 它直接就能工作。因为它完全写在 C# 中,并且使用 UI Toolkit,所以它在 Unity 支持的每个平台中都能工作,无需进行奇怪的设置或学习新的东西。

我已经准备好完整的文档和安装指南:https://rish-ui.com。公共的源代码可在 GitHub 上找到:https://github.com/clockworklabs/Rish

我很希望你们中的某些人尝试它。如果你们有任何的技术意见、功能建议或者一般的反馈,请告诉我!

奖励发布:Sappy

为了使 Rish保持最高性能,我编写了一个快速0 垃圾事件系统,也在开源。你们可以在这里查看:https://github.com/clockworklabs/SappyEvents