关于Godot游戏引擎开发过程的技术细节—模块开发

关于Godot游戏引擎开发过程的技术细节—模块开发


模块(Modules)开发

官方技术文档

  • 详细步骤
    1. 在Godot源代码中找到modules/文件夹并打开,所有自定义拓展模块都要放在这个文件夹下。
    2. 创建自己的模块文件夹,我这里取名为test_modules/,如图所示:关于Godot游戏引擎开发过程的技术细节—模块开发_第1张图片
    3. 打开已经创建好的文件夹,然后编写自己定义的模块的头文件和cpp文件(注意:godot模块使用的是C++),在这里,我创建了一个叫做test_debugger的类作为临时测试,这个类很简单,主要是测试自定义函数add_a_b()是否能正常使用。
      test_debugger.h
      #ifndef TEST_DEBUGGER_H
      #define TEST_DEBUGGER_H
      
      #include "core/reference.h"
      #include 
      
      class test_debugger:public Reference
      {
      private:
      String debugger_text;
      int16_t test_num;
      int16_t a;
      int16_t b;
      /* data */
      GDCLASS(test_debugger, Reference);//处理类继承关系,必要
      public:
      test_debugger();
      ~test_debugger();
      int16_t add_a_b();
      String get_string();
      protected:
      static void _bind_methods();//一个必要的方法,用于引擎内部绑定自定义模块
      };
      
      #endif
      test_debugger.cpp
      #include "test_debugger.h"
      
      test_debugger::test_debugger(){
          debugger_text="this is my first modules";
          test_num=1105;
          a=1;
          b=2;
      }
      
      test_debugger::~test_debugger()
      {
      
      }
      
      void test_debugger::_bind_methods(){
          ClassDB::bind_method(D_METHOD("add_a_b"),&test_debugger::add_a_b);
          ClassDB::bind_method(D_METHOD("get_string"),&test_debugger::get_string);
      }//将自定义模块中所有的自定义方法绑定到引擎内部
      
      int16_t test_debugger::add_a_b()
      {
          return a+b+test_num;
      }
      
      String test_debugger::get_string()
      {
          return debugger_text;
      }
    4. 创建好头文件和源文件之后,我们需要一个叫做SCsub的文件,告知系统如何编译该模块
      # SCsub
      Import('env')
      
      env.add_source_files(env.modules_sources,"*.cpp") 
      # Add all cpp files to the build
      当然,我们可以修改编译的目标文件和目标环境。但这个模块很简单,不需要复杂的修改。
    5. 然后,我们需要一个叫做cofig.py的简单配置文件
      # config.py
      
      def can_build(env, platform):
          return True
      
      def configure(env):
          pass
    6. 至此,所有文件就都已经准备就绪,如图:关于Godot游戏引擎开发过程的技术细节—模块开发_第2张图片
    7. 使用SCons进行编译,编译之后会多出两个文件,如图:关于Godot游戏引擎开发过程的技术细节—模块开发_第3张图片
    8. 打开godot,在脚本编辑器中测试我们的模块是否被正确添加,如图:关于Godot游戏引擎开发过程的技术细节—模块开发_第4张图片
      结果正确运行,自定义模块已经被添加到引擎内部了。至此,一个简单模块的开发就已经完成了。

你可能感兴趣的:(Godot引擎开发)