简介
随着项目规模的扩大,越来越感觉Lua
脚本不受控制,因此尝试选择TypeScript
的脚本方案。
因此,研究了一下PuerTS
的相关机制。
体验下来,PuerTS
的方案确实上手难度比UnLua
高了很大一层,一方面是TypeScript
生态本就比Lua
复杂,另外PuerTS
也提供了足够的灵活性,选择一多在实际应用时反倒不太明确应该如何进展了。
Q&A
有没有最佳实践
官方不提供更详细的例子,目前主要可以参考puerts_unreal_demo项目来了解到作者的一些设计。
从各个论坛、文章分享中可以知道,官方不太希望更偏向UnLua
思路的继承引擎类
的功能。
替代的,官方推荐自行启动虚拟机,并根据项目需要实现一套TypeScript
为主的Gameplay
框架。
因此,对于习惯了UnLua
在蓝图声明一个模块来绑定脚本的开发者来说,切换到PuerTS
可能会不太适应,需要根据项目需求调整思路,
参考Github Discussions1214的思路,其实也能实现一套类似于UnLua
的自动绑定,不过确实就失去了一些TypeScript
类型检查的功能,可能还是需要搭配自动生成等机制来更好地维护。
mixin之后是否支持调用被覆写的函数
不支持。
参考作者回复:https://github.com/Tencent/puerts/issues/1778
而对于继承引擎类的模式,生成的蓝图不建议修改(有可能被覆盖),因此也不适用于这种情况。