使用Unity创作一个模板
使用开发小游戏类似的方法可以创作一个小游戏模板。
在普通的小游戏工程中添加一对MiniCraft文件,同时将config.txt中craftable置为true即可将一个小游戏转换成一个模板。
craftExample
├── luafab
│ |── MiniRoot.prefab
│ |── MiniRoot.lua
│ |── MiniCraft.prefab -- 模板节点prefab
│ └── MiniCraft.lua -- 模板节点脚本
├── src
│ └── MiniContext.lua -
├── config.txt
MiniCraft
MiniCraft.prefab用来定义APP的用户使用模板编辑时的入口,它的根节点需要挂一个MiniBehaviour和一个BehavSlot。
MiniCraft.prefab有一个对应的脚本文件MiniCraft.lua,一般情况下MiniCraft.lua被用作数据结构定义,不需要在其中实现任何逻辑,模板中用到的参数需要在MiniScript定义的字段中填上。
编辑期
在编辑模式下时,MiniRoot不会被加载,MiniCraft会代替MiniRoot被加载。
与MiniRoot不同,在编辑模式下的场景中会自带camera,MiniCraft中不需要添加camera。
开发者可以将可替换的资产在MiniCraft中以插槽的方式摆放组合,让用户可以在使用模板时在插槽中放置素材。
打包
插槽中的可序列化数据会被打包到一个json中,同时插槽中的纹理贴图会被打包到一个图集(为webp或png格式)中,json和图集文件会在运行时被解析并加载,用以构建运行时的输入参数。
运行期
模板游戏在运行时同样是以MiniRoot作为入口,但区别在于运行模式会加载MiniCraft替换上用户填充的模板数据,运行期的代码可以通过miniHelper:GetCraftTable()获取到MiniCraft的实例对象。