focus-creative-games / luban

luban是一个强大、易用、优雅、稳定的游戏配置解决方案。luban is a powerful, easy-to-use, elegant and stable game configuration solution.
https://code-philosophy.com/
MIT License
3.32k stars 526 forks source link

忽略空白值引用不会生成代码 #81

Closed cybasta26 closed 10 months ago

cybasta26 commented 11 months ago

新版本luban,忽略空白值的引用不会再生成代码 比如example中,ai.xml里的BehaviorTree,其中的blackboard_id因为加了ref,生成的代码里会自动生成一个BlackboardId_Ref。但是如果我把他改成可以忽略空白值的引用,生成的代码里就不会再生成BlackboardId_Ref了。 QQ图片20231025162007

调试了下模版,发现如果用field.ctype.tags['ref']拿到的引用名称是ai.TbBlackboard?,名称里是带着问号的。 看了下源码,在源码TypeTemplateExtension.cs里的GetRefTable接口是这样的,估计GetTag("ref")的返回值带着问号,作为table名去GetCfgTable就失败了,不知道是不是一个BUG

QQ图片20231025162051

cybasta26 commented 11 months ago

Snipaste_2023-10-25_16-33-11 尝试修改了一下源码编译之后,再导出确实就又能生成BlackboardId_Ref了。

pirunxi commented 10 months ago

这确实是一个bug。我们会在晚些时候处理它

pirunxi commented 10 months ago

已经修复了。v2.1.8版本