这两天灵机一动,大概折腾了个demo
效果上有点像Unity自己家的Project Tiny那样,Build之后得到的是一个纯HTML5的前端应用。
不过不同于Tiny,我们这里设计的还是相对传统的GameObject+组件这种开发方式:场景->GameObject->组件,而非DOTS那套。
使用GameObject 挂在组件的方式编辑场景,编写C#代码,并在构建时导出HTML应用。
因为暂时没打算把它做完,就压根没往GitHub上整,大概写点东西 算是记录一下:
首先是大概思路:
这玩意其实相当于是一个独立的引擎或者说框架了,和Unity的Runtime基本上没关系。目前大体上可以分为两个部分:
一个是核心模块(core),这部分是一个独立的、与Unity无关的独立工程,由C#和TypeScript编写。在核心模块中,有一套重新实现的GameObject和Compoment的机制。核心模块可以直接用来编写业务逻辑并构建HTML应用,不需要编辑器。直接用core部分编写业务
另一个部分就是针对Unity的扩展,把core部分的东西和Unity关联起来。
在应用构建时,Unity的扩展部分会把在编辑器中编辑的场景、Prefabs等内容读取出来,存储成Json放进HTML应用的资源中,(我们暂时在HTML应用中把Scene、Prefabs什么的都统称为Stage),