creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?

发布时间:2024-06-23 12:01

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第1张图片

引言

Unity什么时候能打微信小游戏包?或者说打包到H5平台?

这个问题困扰了某些人很久,比如我……

针对这个问题,Unity给的方案是:Project Tiny

### 1. 版本进度怎么样了?

然而,距离上一次Unity大张旗鼓宣传Project Tiny,已经过去了大半年。

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第2张图片

最近Unity官方公众号又有一波宣传攻势。

于是乎,我又上Unity官方论坛看了一下Unity Project Tiny项目,也就是Unity的H5版本:

8个月快过去了,终于发布了0.28预览版。

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第3张图片

嗯……0.28……preview……

好奇的我又看了一下开发文档中的版本历史,2019年12月底的版本是:0.20 preview……

文档地址:https://docs.google.com/document/d/1A8hen2hLFY5FLkC5gd3JP2Z-IpHfnAX-CpYLK3aOdwA/edit

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第4张图片

不过,可以看到,疫情期间,Project Tiny团队还在以差不多每个月1-2个版本的速度推进。

老实说,从程序员的角度,我也不知道到底算快还是慢。

依稀记得,Unity花了整整一个2019年,把版本从0.1推进到0.2。

那么,是不是说,从现在的进度来看,是不是今年只能推进到0.3?

或者按照每个月2个小版本的速度,0.28 + 0.01 * 10 = 0.38?

不不不,从版本号,我们没法直接推导出从0.28到1.0版本需要多长时间,毕竟版本推进并不是一个线性的过程。

而版本号也不是一个简单进度条,版本0.28,真的并不表示进度28%……

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第5张图片

只能说Unity团队比较严谨……没有高估版本进度。

但是,从市场的角度,可以说是很慢了吧……

即使一年一次大宣传,距离下一次大版本宣传,也不到5个月了,年底是否真的有可以落地的版本?

能否实现Unity说的“预计年底推出正式版”

我其实是有点悲观。

# 2. 现存Unity项目怎么办?

但是,真正让我忐忑不安的是,另一个问题:现存Unity项目怎么办?

从Unity Project Tiny的文档里透露出来的信息来看,Unity的目标是,对于任何一个Unity项目,只要它与新DOTS架构兼容,就可以与Project Tiny兼容。

可以说是很负责任了。

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第6张图片

但是,

换个说法就是,对于一个Unity项目,想要打包到H5平台运行,需要先保证它能够与新的DOTS架构兼容。

再换个说法就是,对于现存的Unity项目,想要打包到H5平台上,需要看看全新的DOTS架构是否与现有的“旧”架构兼容。

# 2.1. 什么是Hybrid?

文档中提到了一个名词:DOTS Hybrid Unity

这是一种混合编程模式,也就是,现有的旧Unity运行时与新DOTS在同一个项目里并存的一种模式。

Unity的上一波宣传中,特意提到了这种方式:在现有的Unity项目中,能够直接使用DOTS的部分功能。

事实上,由于当前DOTS缺少的功能还比较多,所以,稍微复杂一点的演示Demo都是以这种DOTS Hybrid方式实现的。

Unity官方关于DOTS Hybrid的文档:

https://docs.unity3d.com/Packages/com.unity.rendering.hybrid@latest

文档也介绍了如何配置DOTS Hybrid模式:

1). 方法1,在编辑器中通过一些设置,在编译时进行转换。

2). 方法2,使用ConvertToEntity在运行时转换。

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第7张图片


image

嗯……这个ConvertToEntity组件是怎么工作的呢?

官方文档:https://docs.unity3d.com/Packages/com.unity.entities@0.13/api/Unity.Entities.ConvertToEntity.html

Hybrid Renderer文档中透露出来的信息:

1). Unity曾经想要另外做一个DOTS编辑器,现在放弃了。

2). Unity DOTS将使用现有的基于GameObject的编辑器,来做DOTS工作流的一部分。

简单的说,我们可以继续通过配置GameObject来实现DOTS的配置,而添加了ConvertToEntity组件的GameObject会在运行时自动被转换为Entity,就是DOTS架构的核心单元。

参考教程:https://gametorrahod.com/game-object-conversion-and-subscene/

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第8张图片

这个组件看起来很简洁……似乎……很强大很智能……

真的吗?

也许吧。。。

以下内容纯粹虚构,请勿当真:

这样就可以了吗?会不会需要别的工作?
其实吧,这个组件的功能,就是把GameObject中的各个组件,转换为数据。
只有数据吗?
对,只有数据。
那我写在MonoBehavior中的那些代码呢?
这个嘛,说来话长……
首先,你要知道,DOTS中,Entity只是数据,所以它通常定义成struct,而不是class。
其次,DOTS中,Entity的行为是在Entity System中进行控制的。
最后,现有的MonoBehavior组件既包含了数据又包含了控制逻辑,所以才容易产生性能瓶颈。
最最后,使用Entity和Entity System替换MonoBehavior,可以将性能提升到另一个层次。
没有人会满足于对性能的追求,对吧?我们可不是牙膏厂。
所以,付出一点点代价,比如把MonoBehavior的代码提出来,写成Entity System,这种小事情,没人会在意的,对吧。

可是……

可是…………

可是………………

# 3. 市场真的需要DOTS吗?

什么?!

你说现在的旧架构的性能已经满足了你的需求?!

你说现在的硬件设备已经能够流畅运行别的引擎了?

……

……

……

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第9张图片

那么,问题来了,对于现有的旧Unity项目,

  • 如果不做任何转换,是否与DOTS兼容呢?
  • 如果不做任何修改,能否直接作为Hybrid项目运行,并打包到H5平台?
  • 如果不使用任何DOTS特性,打的H5包与现在的WebGL模式有什么区别吗?

其实吧,

H5市场需要的是一个打包工具,而Unity却决定重写一整套底层架构。

我真的不知道,这到底是不是个好主意,不过,这个真的很程序员。

creator小游戏代码购买_2020年了,Unity能打微信小游戏包了吗?_第10张图片

# 4. 最后的声明

为了避免抬杠,非官方的H5打包方式,其实一直都有。

但是,我真的很希望官方出一个工具嘛。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号