浏览代码

Merge pull request #273 from Unity-Technologies/refine_readme

Refine readme
/main
GitHub 3 年前
当前提交
c827b572
共有 2 个文件被更改,包括 68 次插入31 次删除
  1. 48
      README-ZH.md
  2. 51
      README.md

48
README-ZH.md


UIWidgets主要来自[Flutter](https://github.com/flutter/flutter)。但UIWidgets通过使用强大的Unity引擎为开发人员提供了许多新功能,显著地改进他们开发的应用性能和工作流程。
UIWidgets 2.0是UIWidgets的最新版本,它主要着力于UI绘制相关的整体性能优化。经测试,UIWidgets 2.0在iPhone 6等部分机型上的帧率相对1.0版本可以取得10%左右的提升。如果因为各种原因您还需要使用UIWidgets 1.0,请在Releases中下载对应的包或者使用uiwidgets_1.0分支。
**UIWidgets 2.0**是UIWidgets的最新版本,它针对**中国版Unity**开发并主要着力于UI绘制相关的整体性能优化。经测试,UIWidgets 2.0在iPhone 6等部分机型上的帧率相对1.0版本可以取得10%左右的提升。
如果因为各种原因您还需要使用UIWidgets 1.0,请在Releases中下载对应的包或者使用uiwidgets_1.0分支。
#### 效率
通过使用最新的Unity渲染SDK,UIWidgets应用可以非常快速地运行并且大多数时间保持大于60fps的速度。

### 基于UIWidgets的项目
#### Unity Connect App
Unity Connect App是使用UIWidgets开发的一个移动App产品,您随时可以在Android (https://unity.cn/connectApp/download)
Unity Connect App是使用**UIWidgets 2.0**开发的一个移动App产品,您随时可以在Android (https://unity.cn/connectApp/download)
Unity的线上中文官方文档由UIWidgets开发,您可以点击以下网址 https://connect.unity.com/doc 来访问它的全部内容。该项目目前已开源,所有代码可以在
Unity的线上中文官方文档由UIWidgets 1.0开发,您可以点击以下网址 https://connect.unity.com/doc 来访问它的全部内容。该项目目前已开源,所有代码可以在
:warning: **注意:UIWidgets 2.0仅仅适用于中国版Unity**
UIWidgets的各个版本所需的Unity版本如下表所示。您可以从[https://unity.cn/releases](https://unity.cn/releases)下载最新的Unity。

cd <YourPackagePath>
git clone https://github.com/Unity-Technologies/com.unity.uiwidgets.git com.unity.uiwidgets
```
在unity的PackageManager中,选择添加添加local file。选中```/com.unity.uiwidgets```下的```package.json```。
此外,因为UIWidgets 2.0中为各个平台编译的C++动态库文件较大,我们使用了github提供的**Git Large File Storage**来管理它们以
优化下载体验。为此,请您确保在下载UIWidgets前安装好该[服务](https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage)以便正确下载动态库文件。
最后,在unity的PackageManager中,选择添加添加local file。选中```/com.unity.uiwidgets```下的```package.json```。
UIWidgets目前暂时只支持MacOS(Metal),iOS(Metal),Android(Armv7,OpenGLes)以及 Windows(Direct3D11)。我们后续会针对更广泛的运行环境进行适配,敬请期待。
**UIWidgets 2.0**目前暂时只支持MacOS(Metal),iOS(Metal),Android(Armv7,OpenGLes)以及 Windows(Direct3D11)。我们后续会针对更广泛的运行环境进行适配,敬请期待。与之相对的,UIWidgets 1.0目前支持所有Unity导出目标平台。
## 入门指南

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

51
README.md


the powerful Unity Engine, it offers developers many new features to improve their Apps
as well as the develop workflow significantly.
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.
**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.
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.
#### Efficiency
Using the latest Unity rendering SDKs, a UIWidgets App can run very fast and keep >60fps in most times.

### Projects using UIWidgets
#### Unity Connect App
The Unity Connect App is created using UIWidgets and available for both Android (https://unity.cn/connectApp/download)
The Unity Connect App is created using **UIWidgets 2.0** and available for both Android (https://unity.cn/connectApp/download)
The official website of Unity Chinese Documentation (https://connect.unity.com/doc) is powered by UIWidgets and
The official website of Unity Chinese Documentation (https://connect.unity.com/doc) is powered by UIWidgets 1.0 and
open-sourced @https://github.com/UnityTech/DocCN.
## Requirements

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).
:warning: **UIWidgets 2.0 are only compatible with Unity China version**
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).
| UIWidgets version | Unity 2019 LTS | Unity 2020 LTS |
| -----------------------------------------------| ------------------------- | ------------------------- |

git clone https://github.com/Unity-Technologies/com.unity.uiwidgets.git com.unity.uiwidgets
```
In PackageManger of unity, select add local file. select ```package.json``` under ```/com.unity.uiwidgets```
Note that there are many native libraries we built for UIWidget 2.0 to boost its performance, which are large files and hosted by
**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.
Finally, in PackageManger of unity, select add local file. select ```package.json``` under ```/com.unity.uiwidgets```
Currently UIWidgets only supports MacOS(Metal), iOS(Metal), Android(Armv7, OpenGLes) and Windows(Direct3D11). More devices will be supported in the future.
: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.
## Getting Start

#### FAQ
| Question | Answer |
| :-----------------------------------------------| ---------------------: |
| Can I create standalone App using UIWidgets? | **Yes** |
| Can I use UIWidgets to build game UIs? | **Yes** |
| Can I develop Unity Editor plugins using UIWidgets? | **Yes** |
| Is UIWidgets a extension of UGUI/NGUI? | **No** |
| Is UIWidgets just a copy of Flutter? | **No** |
| Can I create UI with UIWidgets by simply drag&drop? | **No** |
| Do I have to pay for using UIWidgets? | **No** |
| Any IDE recommendation for UIWidgets? | **Rider, VSCode(Open .sln)** |
1. The editor crashes when openning a UIWidgets 2.0 project, e.g., the Sample projects.
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
this [section](#unity).
2. After openning a UIWidgets 2.0 project I receive an error **DllNotFoundException: libUIWidgets**.
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.
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.
```
git lfs pull
```
3. What is the difference between UIWidgets 2.0 and UIWidgets 1.0 ?
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.
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.
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.
## How to Contribute
正在加载...
取消
保存