生成C++或C#的相关代码放在behaviac编辑器项目的PluginBehaviac工程中,具体代码可以用VS打开该项目进行查看或修改。

这里介绍用于生成C++代码的相关类和接口(与生成C#代码基本相同):

  • 从基类Exporter派生出子类ExporterCpp用于管理和发起C++代码的生成。在模块初始化的地方调用如下代码,编辑器将会支持导出C++代码:
    Plugin.Exporters.Add(new ExporterInfo(typeof(PluginBehaviac.Exporters.ExporterCpp), “cpp”, “C++ Behavior Exporter”, true, true));
  • 在DataExporters/Cpp文件夹中,维护了一组导出Variable、Par、Property、Method、Enum、Struct、Array等基本数据结构的Utility类。
  • 从基类NodeExporter派生出子类NodeCppExporter,该子类定义了GenerateClass()、GenerateInstance()、GetGeneratedClassName()、ShouldGenerateClass()、GenerateConstructor()、GenerateMember()、GenerateMethod()等虚函数,用于生成某个具体的节点类。
  • 在NodeExporters/Cpp文件夹中,维护了各种节点类的辅助导出类,例如类Action对应的类ActionCppExporter等等,这些类分别实现了上面的虚函数,用于导出特定节点类的类型、属性和方法等信息。

更多细节可以参考behaviac组件编辑器源码中附带的NodeExporters文件夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注