Skip to content
This repository was archived by the owner on Sep 7, 2022. It is now read-only.

Commit c01b710

Browse files
authored
Merge pull request #273 from Unity-Technologies/refine_readme
Refine readme
2 parents 9a9899f + 1276f96 commit c01b710

File tree

2 files changed

+68
-31
lines changed

2 files changed

+68
-31
lines changed

README-ZH.md

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ UIWidgets是Unity编辑器的一个插件包,可帮助开发人员通过Unity
77

88
UIWidgets主要来自[Flutter](https://github.com/flutter/flutter)。但UIWidgets通过使用强大的Unity引擎为开发人员提供了许多新功能,显著地改进他们开发的应用性能和工作流程。
99

10-
UIWidgets 2.0是UIWidgets的最新版本,它主要着力于UI绘制相关的整体性能优化。经测试,UIWidgets 2.0在iPhone 6等部分机型上的帧率相对1.0版本可以取得10%左右的提升。如果因为各种原因您还需要使用UIWidgets 1.0,请在Releases中下载对应的包或者使用uiwidgets_1.0分支。
10+
**UIWidgets 2.0**是UIWidgets的最新版本,它针对**中国版Unity**开发并主要着力于UI绘制相关的整体性能优化。经测试,UIWidgets 2.0在iPhone 6等部分机型上的帧率相对1.0版本可以取得10%左右的提升。
11+
12+
如果因为各种原因您还需要使用UIWidgets 1.0,请在Releases中下载对应的包或者使用uiwidgets_1.0分支。
1113

1214
#### 效率
1315
通过使用最新的Unity渲染SDK,UIWidgets应用可以非常快速地运行并且大多数时间保持大于60fps的速度。
@@ -41,16 +43,17 @@ UIWidgets 2.0是UIWidgets的最新版本,它主要着力于UI绘制相关的
4143
### 基于UIWidgets的项目
4244

4345
#### Unity Connect App
44-
Unity Connect App是使用UIWidgets开发的一个移动App产品,您随时可以在Android (https://unity.cn/connectApp/download)
46+
Unity Connect App是使用**UIWidgets 2.0**开发的一个移动App产品,您随时可以在Android (https://unity.cn/connectApp/download)
4547
以及iOS (Searching for "Unity Connect" in App Store)端下载到它最新的版本. 本项目的所有代码均开源@https://github.com/UnityTech/ConnectAppCN.
4648

4749
#### Unity中文官方文档
48-
Unity的线上中文官方文档由UIWidgets开发,您可以点击以下网址 https://connect.unity.com/doc 来访问它的全部内容。该项目目前已开源,所有代码可以在
50+
Unity的线上中文官方文档由UIWidgets 1.0开发,您可以点击以下网址 https://connect.unity.com/doc 来访问它的全部内容。该项目目前已开源,所有代码可以在
4951
https://github.com/UnityTech/DocCN 查看。
5052

5153
## 使用要求
5254

5355
#### Unity
56+
:warning: **注意:UIWidgets 2.0仅仅适用于中国版Unity**
5457

5558
UIWidgets的各个版本所需的Unity版本如下表所示。您可以从[https://unity.cn/releases](https://unity.cn/releases)下载最新的Unity。
5659

@@ -72,11 +75,15 @@ UIWidgets的各个版本所需的Unity版本如下表所示。您可以从[https
7275
cd <YourPackagePath>
7376
git clone https://github.com/Unity-Technologies/com.unity.uiwidgets.git com.unity.uiwidgets
7477
```
75-
在unity的PackageManager中,选择添加添加local file。选中```/com.unity.uiwidgets```下的```package.json```
78+
79+
此外,因为UIWidgets 2.0中为各个平台编译的C++动态库文件较大,我们使用了github提供的**Git Large File Storage**来管理它们以
80+
优化下载体验。为此,请您确保在下载UIWidgets前安装好该[服务](https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage)以便正确下载动态库文件。
81+
82+
最后,在unity的PackageManager中,选择添加添加local file。选中```/com.unity.uiwidgets```下的```package.json```
7683

7784
#### 运行环境
7885

79-
UIWidgets目前暂时只支持MacOS(Metal),iOS(Metal),Android(Armv7,OpenGLes)以及 Windows(Direct3D11)。我们后续会针对更广泛的运行环境进行适配,敬请期待。
86+
**UIWidgets 2.0**目前暂时只支持MacOS(Metal),iOS(Metal),Android(Armv7,OpenGLes)以及 Windows(Direct3D11)。我们后续会针对更广泛的运行环境进行适配,敬请期待。与之相对的,UIWidgets 1.0目前支持所有Unity导出目标平台
8087

8188
## 入门指南
8289

@@ -245,16 +252,27 @@ using(Isolate.getScope(the isolate of your App)) {
245252

246253
#### 常问问题解答
247254

248-
| 问题 | 回答 |
249-
| :-----------------------------------------------| ---------------------: |
250-
| 我可以使用UIWidgets创建独立应用吗? | 可以 |
251-
| 我可以使用UIWidgets构建游戏UI吗? | 可以 |
252-
| 我可以使用UIWidgets开发Unity编辑器插件吗? | 可以 |
253-
| UIWidgets是UGUI / NGUI的扩展吗? | 不是 |
254-
| UIWidgets只是Flutter的副本吗? | 不是 |
255-
| 我可以通过简单的拖放操作来创建带有UIWidgets的UI吗? | 不可以 |
256-
| 我是否需要付费使用UIWidgets? | 不需要 |
257-
| 有推荐的适用于UIWidgets的IDE吗? | Rider, VSCode(Open .sln) |
255+
1. 在打开一个UIWidgets 2.0项目后Unity编辑器崩溃了。
256+
257+
请确定您使用的Unity编辑器版本兼容您使用的UIWidgets版本。例如,**UIWidgets 2.0.3**只支持以下中国版Unity版本:2019.4.26f1c1 ~ 2019.4.29f1c1。您可以在[这里](#unity)查找兼容您UIWidgets版本的Unity版本信息。
258+
259+
2. 在打开一个UIWidgets 2.0项目后Unity控制台报错,报错信息为**DllNotFoundException: libUIWidgets**
260+
261+
请首先检查您的UIWidgets根目录下/Runtime/Plugins中适配各个平台的C++库文件是否完整。例如,Windows平台下的libUIWidgets.dll位于*X86_64*子目录下,Mac平台下的libUIWidgets.dylib位于*osx*目录下。
262+
263+
如果您发现库文件不存在或者文件大小不正常(<1MB),请确认您已经在您电脑上安装了**Git Large File Storage**,然后在UIWidgets根目录下执行如下指令:
264+
```
265+
git lfs pull
266+
```
267+
268+
3. UIWidgets 2.0和UIWidgets 1.0的区别大吗?哪个更适合我的项目?
269+
270+
在UIWidgets 1.0中所有渲染相关代码都由C#编写并且使用了Unity [Graphics API](https://docs.unity3d.com/ScriptReference/Graphics.html)
271+
进行渲染。因此它可以正确运行在任意Unity支持的平台。不过与此同时,它的运行效率较低,且渲染效果与flutter在某一些细节上并不一致。
272+
273+
在UIWidgets 2.0中我们将一个flutter引擎嵌入到了C++动态库中,然后Unity通过调用这个动态库来进行渲染。因此,它的渲染结果与flutter完全一致,且性能比C#实现的渲染代码有明显提升。不过为了使flutter引擎和Unity可以正确协作,我们对flutter和Unity引擎都进行了一些修改。因此,目前UIWidgets 2.0只能够运行在包含上述修改的中国版Unity中,并且暂时只支持部分Unity的目标平台。
274+
275+
由于UIWidgets 2.0在效果和效率上的优势,因此推荐大家使用。仅当您需要在UIWidgets 2.0暂时不支持的平台(如webgl)上开发时才推荐使用UIWidgets 1.0。此外,由于人力原因,目前只有UIWidgets 2.0我们会持续更新。
258276
259277
## 如何贡献
260278
请查看[CONTRIBUTING.md](CONTRIBUTING.md)

README.md

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ UIWidgets is mainly derived from [Flutter](https://github.com/flutter/flutter).
1111
the powerful Unity Engine, it offers developers many new features to improve their Apps
1212
as well as the develop workflow significantly.
1313

14-
As the latest version, UIWidgets 2.0 aims to optimize the overall performance of the package. Specifically, a performance gain around 10% is observed on mobile devices like iPhone 6 after upgrading to UIWidgets 2.0. However, if you still want to use the original UIWidgets 1.0, please download the archived packages from Releases or switch your working branch to uiwidgets_1.0.
14+
**UIWidgets 2.0** is developed for **Unity China version** deliberately and aims to **optimize the overall performance of the package**. Specifically, a performance gain around **10%** is observed on mobile devices like iPhone 6 after upgrading to UIWidgets 2.0.
15+
16+
If you still want to use the original UIWidgets 1.0, please download the archived packages from Releases or switch your working branch to uiwidgets_1.0.
1517

1618
#### Efficiency
1719
Using the latest Unity rendering SDKs, a UIWidgets App can run very fast and keep >60fps in most times.
@@ -50,18 +52,20 @@ CPU/GPU Profiling, FPS Profiling.
5052
### Projects using UIWidgets
5153

5254
#### Unity Connect App
53-
The Unity Connect App is created using UIWidgets and available for both Android (https://unity.cn/connectApp/download)
55+
The Unity Connect App is created using **UIWidgets 2.0** and available for both Android (https://unity.cn/connectApp/download)
5456
and iOS (Searching for "Unity Connect" in App Store). This project is open-sourced @https://github.com/UnityTech/ConnectAppCN.
5557

5658
#### Unity Chinese Doc
57-
The official website of Unity Chinese Documentation (https://connect.unity.com/doc) is powered by UIWidgets and
59+
The official website of Unity Chinese Documentation (https://connect.unity.com/doc) is powered by UIWidgets 1.0 and
5860
open-sourced @https://github.com/UnityTech/DocCN.
5961

6062
## Requirements
6163

6264
#### Unity
6365

64-
The compatible Unity versions for each UIWidgets release are listed below. You can download the latest Unity on [https://unity.cn/releases](https://unity.cn/releases).
66+
:warning: **UIWidgets 2.0 are only compatible with Unity China version**
67+
68+
Specifically, the compatible Unity versions for each UIWidgets release are listed below. You can download the latest Unity on [https://unity.cn/releases](https://unity.cn/releases).
6569

6670
| UIWidgets version | Unity 2019 LTS | Unity 2020 LTS |
6771
| -----------------------------------------------| ------------------------- | ------------------------- |
@@ -82,11 +86,14 @@ Generally, you can make it using a console (or terminal) application by just a f
8286
git clone https://github.com/Unity-Technologies/com.unity.uiwidgets.git com.unity.uiwidgets
8387
```
8488

85-
In PackageManger of unity, select add local file. select ```package.json``` under ```/com.unity.uiwidgets```
89+
Note that there are many native libraries we built for UIWidget 2.0 to boost its performance, which are large files and hosted by
90+
**Git Large File Storage**. You need to install [this service](https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage) first and then use it to fetch these libraries.
91+
92+
Finally, in PackageManger of unity, select add local file. select ```package.json``` under ```/com.unity.uiwidgets```
8693

8794
#### Runtime Environment
8895

89-
Currently UIWidgets only supports MacOS(Metal), iOS(Metal), Android(Armv7, OpenGLes) and Windows(Direct3D11). More devices will be supported in the future.
96+
:warning: Though UIWidgets 1.0 is compatible to all platforms, currently **UIWidgets 2.0** only supports MacOS(Metal), iOS(Metal), Android(OpenGLes) and Windows(Direct3D11). More devices will be supported in the future.
9097

9198
## Getting Start
9299

@@ -267,16 +274,28 @@ Meanwhile, you can join our [discussion channel](https://unity.cn/plate/uiwidget
267274

268275
#### FAQ
269276

270-
| Question | Answer |
271-
| :-----------------------------------------------| ---------------------: |
272-
| Can I create standalone App using UIWidgets? | **Yes** |
273-
| Can I use UIWidgets to build game UIs? | **Yes** |
274-
| Can I develop Unity Editor plugins using UIWidgets? | **Yes** |
275-
| Is UIWidgets a extension of UGUI/NGUI? | **No** |
276-
| Is UIWidgets just a copy of Flutter? | **No** |
277-
| Can I create UI with UIWidgets by simply drag&drop? | **No** |
278-
| Do I have to pay for using UIWidgets? | **No** |
279-
| Any IDE recommendation for UIWidgets? | **Rider, VSCode(Open .sln)** |
277+
1. The editor crashes when openning a UIWidgets 2.0 project, e.g., the Sample projects.
278+
279+
Please make sure that you are using campatible Unity versions to the specific UIWidgets version. For example, **UIWidgets 2.0.3** is only supported on Unity China version between 2019.4.26f1c1 and 2019.4.29f1c1. You can find the detailed information in
280+
this [section](#unity).
281+
282+
283+
2. After openning a UIWidgets 2.0 project I receive an error **DllNotFoundException: libUIWidgets**.
284+
285+
Please make sure that the native libraries are correctly downloaded to your project. You can find them under *UIWidgetsPackageRoot*/Runtime/Plugins. For example, the libUIWidgets.dll under the sub folder *X86_64* is the native library for Windows and the libUIWidgets.dylib under *osx* is for Mac.
286+
287+
If the libraries are not there or their sizes are small (<1MB), please ensure that you have installed **Git Large File Storage** in your computer and then try the following command line inside the UIWidgets repository.
288+
```
289+
git lfs pull
290+
```
291+
292+
3. What is the difference between UIWidgets 2.0 and UIWidgets 1.0 ?
293+
294+
In UIWidgets 1.0 we used Unity [Graphics API](https://docs.unity3d.com/ScriptReference/Graphics.html) for the rendering and all rendering codes are writen in C#. Therefore it is able to run freely on all platforms that Unity supports but relatively slow. The rendering result is also not exactly the same as in flutter due to the difference between the Unity rendering engine and flutter engine.
295+
296+
In UIWidgets 2.0, we wrapped the flutter engine inside a native library which is writen in C++ and used it to render on Unity Textures. Its rendering result is the same as in flutter and the performance is also better. However, in order to ensure that the flutter engine works properly along with Unity, we modified both the flutter and Unity Engine. As the result, currently UIWidgets 2.0 can only run on specific Unity versions, i.e., Unity China version and supports only part of the build targets of Unity.
297+
298+
For better rendering result, performance and continuous upgrade and support, you are always suggested to use UIWidgets 2.0 for your project. Use UIWidgets 1.0 only if you need to support specific target platforms like webgl.
280299
281300
## How to Contribute
282301

0 commit comments

Comments
 (0)