Godot引擎Gdnative配置VisualStudio的方法 (c++)

参考资料:

https://www.youtube.com/watch?v=Obeu2b2eN04&list=PLZ2NyOcFnfQOko5ZysZeGkH3bfw2UtbOK&index=2

GDNative C++示例 — Godot Engine (stable) 简体中文文档

推荐先看看第二个链接(官网关于gdnative配置c++的教程,大部分中文)

本文重点讲怎么配置gdnative - vs,不会讲具体讲gdnative改怎么用

1.官网下载godot-cpp

    下载链接:GitHub - godotengine/godot-cpp: C++ bindings for the Godot script API

    !注意 !  下载如果使用的是zip下载,一定要进入godot-header文件夹,把godot-header也下载了,并放在相应的位置

                      推荐使用递归克隆

     

Godot引擎Gdnative配置VisualStudio的方法 (c++)_第1张图片

2.使用scons命令生成godot-cpp的lib库

    如果没有scons命令的自行百度下载

    打开cmd使用cd命令进入godot-cpp对应的文件夹,使用如下指令:

    scons platform= generate_bindings=yes -j bits= target=

    :对应的是相应的平台,比如我是windows就替换为windows

    :对应的是编译时使用几个线程

    :对应的是系统位数,如果是64位请选择64

    :对应的是lib版本,如debug或者release

    生成好的lib文件应该现在就回出现在你godot-cpp文件夹里面的bin文件夹里面

3.创建godot项目,创建vs项目

    创建(选择)一个存放所有godot项目的文件夹,把刚才godot-cpp放进去,然后在里面再创建一个文件夹命名为

    你项目的名字,然后再在你刚才创建的名为你项目的文件夹里面创建godot项目和vs工程

    比如:我存放所有godot项目的文件夹为:D:\GodotPrj

               我的项目文件夹为:D:\GodotPrj\dodgeCreeps

               我的godot项目文件夹为:D:\GodotPrj\dodgeCreeps\dodgeCreeps

               我的vs工程文件夹为:D:\GodotPrj\dodgeCreeps\CPP_DLLMaking

4.配置vs

    打开你的vs工程,打开你的你的项目属性:

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第2张图片

    我们先来配置共有的,选择所有配置-所有配置,平台-所有平台:

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第3张图片

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第4张图片

    在配置属性-常规那一栏,选择输出目录到你godot项目文件夹里的bin(名字自取,这个文件夹是你自己创建的,装你生成的文件,为了方便)文件夹,同时配置类型选择dll:

     Godot引擎Gdnative配置VisualStudio的方法 (c++)_第5张图片

     在配置属性-vc++目录那一项,选择包含目录到你godot-cpp里的godot-hear和include以及include/gen以及include/core,选择库目录到你godot-cpp里面的bin(图片中我把文件夹名字从bin改成lib,反正就是你生成的lib文件的文件夹名字):

     

     (对于我的目录结构就是):

      Godot引擎Gdnative配置VisualStudio的方法 (c++)_第6张图片Godot引擎Gdnative配置VisualStudio的方法 (c++)_第7张图片

    然后链接器-常规-附加库目录也选为你生成lib文件的文件夹:

    

    (比如我的就是):

    

   然后我们来配置不共同的:

   先把配置改为debug或者release,配置改为32或64

   在链接器-输入-附加依赖项里面加上你对应 配置 平台 的lib文件名:

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第8张图片

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第9张图片

    代码部分:

    创建一个CPP文件,名字任取,包含以下代码:

#include 
#include "ContrallNode.h"

extern "C" void GDN_EXPORT godot_gdnative_init(godot_gdnative_init_options *o) {
	godot::Godot::gdnative_init(o);
}

extern "C" void GDN_EXPORT godot_gdnative_terminate(godot_gdnative_terminate_options *o) {
	godot::Godot::gdnative_terminate(o);
}

extern "C" void GDN_EXPORT godot_nativescript_init(void *handle) {
	godot::Godot::nativescript_init(handle);

	register your class :
	godot::register_class();
}

     其中godot::register_class();

     ContrallNode为你想要注册(被godot/gdnative调用)类的名字,可以有多个,具体gdnative调用哪个会在gdnative里面指明

    (我发现我control打错了,英语不过关(;´д`)ゞ)

     然后就是在你头文件目录加入类的声明头文件在你的源文件目录加入对应类的实现的cpp:

     Godot引擎Gdnative配置VisualStudio的方法 (c++)_第10张图片

    然后生成,如果没有报错,那vs这边就解决啦。

5.配置godot引擎里的gdnative和gdnlib

    vs生成完成后,你应该在你godot项目的bin文件夹里面看到对应生成的:

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第11张图片    

    然后打开godot给我们想要使用这个类(被这个类扩展的结点添加一个GDNativeScript)的结点,类名写你想要用的类(且已经用register_class注册了)的类名,继承写对应继承

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第12张图片

    然后再在你喜欢的位置创建一个gdnativelibrary的资源,注意!:后缀名要改为.gdnlib(它默认好像是.tres):

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第13张图片     

    并在对应平台选择对应生成dll:

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第14张图片

    再点击刚才的创建的gdnative选择我们创建的gdnlib:

    Godot引擎Gdnative配置VisualStudio的方法 (c++)_第15张图片 

    然后就大功告成,我们每次在vs里面改变了代码,就生成一次dll,然后由于路径没有变,godot的gdnative就会自动重新加载我们生成的新的dll。

6.确认一切无误后任然可能出错

1.可以试试在vs里面把文件移除,编译godot使用,然后再加入对应文件再编译使用。

2.重启godot

你可能感兴趣的:(游戏,游戏引擎,c++,visual,studio)