Project Tiny C# 预览版现已推出
全新的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官方。
推荐阅读
Unity 2018.3推出Project Tiny小游戏开发套件
使用Unity 2019.1中的Timeline Signals
有奖调查
Unity Hub 2.0中文版以及Unity中文版文档已发布,请参与有奖调查,反馈你的意见,以便我们进一步改进。更多详情,请访问此处。
喜欢本文,请点击“在看”