查看原文
其他

Project Tiny C# 预览版现已推出

Unity Unity官方平台 2022-05-07

全新的Project Tiny首个预览版现已推出,使用C#作为编程语言。如果你使用Unity 2019.2.0b3或更高版本,可通过资源包管理器安装Project Tiny Preview - 0.15.3。

 

根据用户的反馈,我们修改了大部分支持Project Tiny的底层技术,从而使它更接近Unity的生态系统。Project Tiny预览版完全集成Unity面向数据技术栈DOTS,从而为超小型用例和大规模项目的高级功能提供了基础。


Project Tiny重要特性

编辑器内的DOTS模式

Project Tiny将使用C#作为编程语言,除此之外,我们还把项目基础改为面向数据技术栈DOTS。


Project Tiny基于实体组件系统ECS和Job System开发,不久后会支持Burst Compiler,并且支持Web平台。开发者将使用这些技术编写代码,不仅可以制作出轻量的小型Web游戏,还可以开发出高端高性能的游戏大作。

 

我们在Unity编辑器中加入了DOTS Mode。该模式会改变编辑器,使其处理纯DOTS数据,为开发者提供合适的工具和工作环境。这是非常重要的变化,为Project Tiny和DOTS技术奠定了基础。

 

如果你有兴趣了解Unity DOTS技术的未来,Project Tiny将是探索DOTS技术的绝佳机会。


面向Web构建,在PC上迭代

Project Tiny首个版本的重点在Web版本目标,支持asm.js和WebAssembly


我们提供了构建桌面端二进制文件的功能,适用于Windows系统和Mac系统,从而允许开发者进行快速迭代,并更好的集成开发工具。开发者将可以在自己选择的IDE上进行开发和调试,例如:Visual Studio和JetBrains Rider。

 

现在,开发者仅可以调试桌面端构建版本,但在不久后,开发者将可以使用这些IDE来调试运行在浏览器上的Web构建版本。因此,开发者不必再处理JavaScript调试工具,也不用理解生成的代码。



建立基础

Project Tiny预览版注重基础要素,包括:DOTS技术,DOTS模式和新的Project Tiny模块。虽然该版本仍缺少一些高级工作流程功能,但这是我们开发计划的第一步。


我们将针对用户的痛点进行快速更新,希望和用户合作开发出能够解决用户需求的产品。后续,我们将分享Project Tiny 1.0版本的路线图,介绍在未来几个月可以期待的功能与内容。


DOTS中的C#

为了实现Project Tiny的大小和性能目标,同时支持C#语言,我们正在处理.NET Standard 2.0子集的定义,以确保开发者代码的轻量和快捷。


对于第一个版本, Project Tiny的所有功能都会按照该子集进行开发。我们将在此后提供子集内容的更多信息,以及改进该子集的计划。


请注意:该子集可能没有用户期待的许多.NET类库功能。


预览版的反馈

对于这个还未完善的预览版,我们主要想得到关于核心开发体验的反馈,需要的具体反馈内容如下: 

  • 你是否成功安装Project Tiny预览版资源包?

  • 你是否可以打开示例项目,并为.NET进行构建?是否可以面向Web平台构建?

  • 你是否可以在自己所选择的IDE打开项目?

  • 你是否可以在IDE修改代码和版本?是否可以设置断点并调试?


安装及导入项目

通过Unity Hub安装Unity 2019.2.0b3及更高版本,并使用2D模板创建一个新项目。

 

 

我们打开资源包管理器,在Advanced菜单中选中Show preview packages选项。

 

 

然后选择Project Tiny资源包,单击Install按钮,进行安装。

 


安装完成后,我们将看到示例内容列表。

 

 

找到“HelloWorld”示例,单击Import in project按钮,把示例内容复制到Assets文件夹中。


Project Tiny加入了新的菜单组:DOTS。DOTS项目会保存在Unity项目中,该特点会在以后变化。


进入DOTS模式,请打开HelloWorld项目。依次点击DOTS > Open Project,选择Assets/Samples/Project Tiny/0.15.3-preview/HelloWorld目录下的HelloWorld.project。


 

我们也可以直接在资源窗口双击HelloWorld.project打开项目。

 

编辑器会切换为DOTS模式。此时会显示导入TMP,即TextMeshPro的提示,单击Import TMP Essentials即可。

 

 

在TextMeshPro导入后,我们需要重新加载项目,再次点击DOTS > Open Project,选择HelloWorld.project。

 

然后打开HelloWorld/Scene目录下的MainScene,现在应该看到如下画面。


 

单击Play来构建和启动场景。

 

 

请注意:在第一个版本中,Unity会下载和缓存额外的资源,因此用户必须确保电脑已经连接到互联网。

 

在构建完成后,我们将看到下图画面。


 

我们为该示例中的“程序员美术效果”深感抱歉,我们已经批评与该示例相关的程序员,他们保证以后不会自诩为艺术家,且不会再尝试弄脏大家的眼睛:)

 

请注意:此时运行模式在Unity编辑器外运行。

 

我们也可以尝试构建Web版本。



现在可以在层级窗口看到不同实体,在检视窗口查看这些实体的相应组件。


编辑C#脚本

我们可以在查看HelloWorld/Scripts目录下的MoveSpriteSystem.cs和RotateSpriteSystem.cs脚本,了解如何使用C#语言实现简单的系统。

 

查看和编辑.CS脚本,首先要打开DOTS IDE Solution,选择Assets > Open DOTS C# Project,打开为DOTS开发及调试而配置的新Solution解决方案。该解决方案和“Open C# Project”的不同,打开C#项目会打开经典的Unity解决方案。

 

请注意:双击Unity项目窗口里的脚本会使用错误的解决方案打开脚本,如果使用DOTS解决方案的话,它会带有“-Dots”后缀。

 

现在你可以使用自己喜欢的脚本编辑器或IDE打开脚本。


调试

我们依次点击菜单Assets > Open DOTS C# Project,在编辑器设置好具体配置后,便可以直接在IDE中修改、构建、运行和调试代码。

 

如果已经执行上部分的操作,我们可以打开HelloWorld示例,构建“Windows DotNet / Debug”配置。

 

如果使用Visual Studio,步骤如下

1、右键点击HelloWorld项目,选择“Set as Startup Project”。

2、确保“windows-dotnet-debug”是当前选中的配置。

 

 

3、单击运行按钮,现在应该已经可以设置断点和查看数据。


 

如果使用JetBrains Rider,步骤如下

 1、把IDE从Unity模式改为Solution模式。在浏览面板中,确保在顶部选中的是“Solution”,而不是“Unity”。

 2、确保选中“windows-dotnet-debug | Default”作为配置。

 3、编辑当前运行的配置,或按下Play,此时会打开Edit Configuration对话框。

 4、选择HelloWorld项目,单击运行按钮。

 

目前该项目暂时无法很好的支持Visual Studio Code,我们将在之后解决该问题。


文档

当前版本的文档还不完整。虽然API Reference部分已经没什么问题了,但是用户手册仍需要修改,该部分存在丢失和过时的页面,我们将在下一个版本完成文档的更新。

 

因为基于常用DOTS核心构建,所以大部分通用Unity ECS文档和DOTS文档都适用于Project Tiny项目,但该项目暂时还不支持Burst编译器。


参考文档介绍了大部分DOTS核心API。目前该项目仍未应用Unity.Transforms和Unity.Rendering功能。


示例

Project Tiny 预览版包含一组简单的示例,用于了解许多功能,例如:

  • HelloWorld示例:介绍简单的文本显示和精灵旋转功能。

  • BrowserInterop示例:介绍C#代码如何与JS代码交互。

  • DragAndDrop示例:介绍如何使用输入内容,以及如何实现拖拽功能。

  • Joystick示例:介绍如何创建虚拟UI摇杆,以通过键盘或触屏控制角色移动,其中包含简单的摄像机跟踪功能。

  • SpawnAndDestroy示例:介绍如何加载,初始化和卸载场景。

  • TimerButton示例:介绍如何设置UILayout,在按下按钮后执行动作,以及如何使用计时器。


已知问题

下面列出了和Project Tiny Preview 0.15.3版本相关的已知问题,它们将在下一个预览版本中修复:

 

1、在流程的各个步骤中,在经过安装资源包、导入示例、打开项目并运行版本后,如果项目的行为不正常,应该尝试关闭Unity,再重新打开项目。

 

2、打开DOTS C#项目可能需要较长时间,首次打开时可能需要几分钟。


目前,这类项目会执行不必要的任务来准备解决方案,MacOS系统上的时间会比Windows系统上的时间更长。虽然之后的打开速度会变快,但依旧不是最优打开时间。


如果使用错误的解决方案打开代码,我们将无法在IDE中构建和调试,而且Intellisense智能感知功能会使用错误的上下文环境。

 

而且在添加脚本时,解决方案不会和Unity同步,它会强制用户关闭IDE,然后通过“Open DOTS C# Project”选项重新打开,该选项可通过Asset菜单或右键点击Unity项目窗口打开。

 

3、Edit> Frame Selected功能不适用于Windows系统。

 

4、在完成安装资源包后,应该关闭资源包管理器,这样会加快更新和编译脚本变更的速度,因为加载资源包管理器UI时,每次代码变更都会触发资源包重载。


常见问题解答

Q:Project Tiny中所有即将推出功能的路线图会在哪里发布?

A:我们正在确定将要加入的新功能和发布时间,我们将在Unity官方论坛尽快分享这些信息。我们非常重视用户的反馈,在整个预览阶段,我们都会进行调查和采访,并提供路线图信息。

 

Q:是否可以把项目从之前的预览版,即Tiny Mode 0.14.x及更早版本升级到新版本?

A:目前没有Tiny Mode预览资源包0.14.x及更早版本的自动移植工具。开发者必须手动移植和重新创建项目,包括:重新创建场景、实体和组件、并使用C#语言重新编写代码。

 

Q:是否可以像之前预览版那样,使用可视化组件编辑器来创建组件?

A:我们将在之后重新加入可视化创建组件的方法,但目前组件必须通过代码并使用常规的DOTS形式创建。

 

Q:是否可以创建预制件?

A:目前暂时不可以,我们正在开发该功能,之后会提供相应更新。

 

Q:我无法找到构建报告,它去哪了?

A:Build Report构建报告功能不包含在该预览版中,我们计划在之后的预览阶段加入该功能。

 

Q:如何预览编辑器内的粒子系统?

A:我们重新设计了粒子系统编辑器集成,目前该功能仍未准备好,我们将在未来版本加入该功能。


Q:项目设置在什么位置?

A:依次点击Edit > Project Settings…,然后选择DOTS部分,便可找到项目设置。



项目所使用的模块列表保存在以“[项目名称].asmdef”格式命名的文件中,你可以在项目窗口选中该文件,然后看到下图画面。



未来我们将会加入更多选项。

 

Q:Physics物理模块即Physics2D在什么地方?

A:Project Tiny Preview 0.15.3不包含Physics2D,我们仍在开发改进的DOTS 2D Physics模块。你可以使用HitBox2D处理轻量级交互过程,覆盖不需要物理的检查模块。

 

Q:Tilemap2D模块在什么地方?

A:Project Tiny Preview 0.15.3不包含Tilemap2D模块。我们仍在开发针对DOTS模式设计的改进2D模块。

 

Q:如果想要制作可玩式广告或即时聊天软件的游戏,该怎么做?

A:Project Tiny可以面向Web目标进行构建,并优化大小和速度,你可以选择使用Canvas或WebGL进行渲染,从而开发出可玩式广告。


但当前的预览版不包含带有所有可用资源的“Playable Ads”构建目标。对于Facebook Instant Games这类平台,我们需要手动打包输出内容。

 

例如:对于HelloWorld示例,生成的HTML文件会保存在项目文件夹的以下目录:Library/DotsRuntimeBuild/build/HelloWorld/HelloWorld-[target-config]

 

我们将在未来版本中加入有关文件结构的文档。

反馈和汇报Bug

关于Project Tiny 的讨论和反馈请访问:

https://forum.unity.com/threads/project-tiny-c-preview-available.688969/?from=timeline

 

我们欢迎用户通过GitHub项目的Issue页面提供功能请求,这样我们可以轻松跟踪和处理它们,请访问:

https://github.com/Unity-Technologies/com.unity.tiny/issues

 

如果遇到了Bug,特别是需要发送项目副本的Bug,请使用Unity Bug Reporter工具提交Bug报告。该工具会给我们发送调查问题要用的详细信息。


在Unity编辑器中,在菜单打开Help > Report a Bug。使用“[Tiny]”作为Bug报告标题的前缀,然后提供详细信息和可重现问题的步骤。

 

小结

Project Tiny预览版为大家介绍到这里,赶紧使用起来吧。更多Unity新功能介绍,尽在Unity Connect平台(Connect.unity.com)。

 

下载Unity Connect APP,请点击此处。 观看部分Unity官方视频,请关注B站帐户:Unity官方


推荐阅读

面向数据技术栈DOTS的C++和C#

面向数据技术栈DOTS之ECS实体组件系统

Unity 2018.3推出Project Tiny小游戏开发套件

Unite 2019 |《球球大作战》优化之路(上)

Unite 2019 |《球球大作战》优化之路(下)

使用AR模拟高速IndyCar赛车

针对Linux系统的Unity编辑器介绍

使用Unity 2019.1中的Timeline Signals


有奖调查

Unity Hub 2.0中文版以及Unity中文版文档已发布,请参与有奖调查,反馈你的意见,以便我们进一步改进。更多详情,请访问此处。



喜欢本文,请点击“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存