最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

初探Godot的三種C++集成、運行調試以及Spine官方運行庫的集成

2022-11-03 15:44 作者:enigmaxp  | 我要投稿

## 本文主要介紹環(huán)境搭建部分,代碼部分不會過多涉及


## 前置需求


### 只想要用別人現(xiàn)成的C++模塊,比如Spine運行庫


- 能搗鼓明白Scons

- 會自己裝各種C++編譯環(huán)境

- 會看官方文檔(官方文檔大多都寫明白了,只不過每個人環(huán)境不一樣,說不定你就是那個踩坑的幸運兒)


### 想要自己Debug C++,自己寫點C++代碼


- 會裝VS、或者VSCODE、或者其它IDE

- 會C++基礎


## GDNative、C++module、GDExtension對比


### GDNative


- 簡單

- 不用全編譯

- 調試以attach進程的形式實現(xiàn)

- 受Godot框架限制較大,適合搞些計算密集型的任務或者大內存頻繁操作?

- 編譯到多個平臺很麻煩(我至今不知道怎么編譯到android平臺上)


### C++module


- 麻煩

- 要godot源碼全編譯,由于有編譯cache作用,一次編譯后續(xù)速度會加快

- 通過visual studio調試,開發(fā)效率勉強也能接收

- 編譯到多平臺較為容易,只要按照官方文檔編譯模版文件就可以了


### GDExtension(Godot4)


- 和GDNative十分相似,有部分優(yōu)化,但是目前尚處于實驗階段


## 試試GDNative


不需要godot源碼,但是需要[godot-cpp](https://github.com/godotengine/godot-cpp/tree/godot-3.5-stable)和[godot-cpp-header](https://github.com/godotengine/godot-headers/tree/godot-3.5-stable),注意master分支已經(jīng)是godot4的代碼了,所以3.5還是要切對應的3.5分支


### 開發(fā)流程1-scons編譯


godot-cpp-header放在godot-cpp文件夾里,然后整個godot-cpp拷貝過去,創(chuàng)建好SConstruct,可以用[官方模版](https://docs.godotengine.org/en/stable/tutorials/scripting/gdnative/gdnative_c_example.html#doc-gdnative-c-example)


把所有項目內容按照scons文件里的要求過一遍,目錄該有的要有,文件夾對應好,跑一遍scons platform=windows搞定

具體開發(fā)可以參考[視頻](https://www.youtube.com/watch?v=j0hMxMD9mII)


### 開發(fā)流程2-vs自己編譯


參考[視頻](https://www.youtube.com/watch?v=aPDO9nAP5oM)


不要求拷貝godot-cpp和godot-cpp-header,只需要配置的時候把路徑設置好就可以了,免去了每次拷文件的煩惱


把godot的庫直接手動加到vs里,參考步驟如圖(圖里的lib目錄其實是godot-cpp的bin目錄)


設置dll導出到自己的godot項目文件夾里,不用每次編譯完手動拷貝了


直接生成項目,dll就到對應文件夾里了


### 集成流程


有了dll,在godot里創(chuàng)建一個資源gdnlib

配置好對應的dll,就可以新建一個gdns了

### 調試

全部搞好就可以執(zhí)行了,通過附加到進程進行調試


## 試試C++ module

[官方文檔](https://docs.godotengine.org/en/stable/development/cpp/custom_modules_in_cpp.html)


首先要scons編譯一遍


通過`scons?platform=windows?vsproj=yes`生成vs解決方案,就可以直接用vs打開sln文件了


配置好調試的命令參數(shù),就可以直接運行了,自動每次都會自動執(zhí)行scons生成一個全新的godot


命令行參數(shù)官方文檔也有說明,如果想要調試游戲某個場景,去掉-e參數(shù),增加tscn路徑即可


例如`--path "E:\workspace\godot\godot3_5_web\GodotProjectWithCppModule" "t2.tscn" --verbose`

參考[視頻](https://www.youtube.com/watch?v=xo3z9IjGRSo)


這個好處就是可以直接調試游戲,不用attach進程調試了,但是缺點就是每次運行變慢了,如果cpp改動不大或者用的不深入應該問題不大


### spine運行庫


[spine-godot](http://zh.esotericsoftware.com/spine-godot)


從github上clone下來spine-runtimes,由于官方提供的流程是會單獨重新拉godot代碼的,而且會把godot代碼放在spine運行庫的文件夾里


這里推一波我的做法:


將spine-runtimes里的spine-cpp拷貝到spine-godot里

將spine-runtimes里的spine-godot拷貝到你自己的godot源碼同目錄,注意godot源碼的目錄,名字要一模一樣編譯才能通過


在godot目錄里使用scons命令但是增加一個`custom_modules="../spine_godot"`即可,這樣就能實現(xiàn)和官網(wǎng)bat腳本一樣的結果


以上操作是解構bat文件的結果,其實自己看一遍就明白了


最后編譯出ide,就能執(zhí)行spine-godot中的示例項目了


如果要編譯到其他平臺的導出模版,只要依樣畫葫蘆加上`custom_modules="../spine_godot"`即可

## 試試GDExtension


官網(wǎng)提供了一個示例,我本地運行沒問題,編譯和集成步驟和gdnative差不多,但是據(jù)說代碼寫法上更接近c++ module,但是由于短期還沒有遷移4.0打算,所以只是淺嘗即止,沒有深挖。


[官網(wǎng)](https://godotengine.org/article/introducing-gd-extensions)


[介紹](https://www.reddit.com/r/godot/comments/suvklu/a_few_questions_about_c_and_godot_4s_gdextension/)


## 總結


有了C++作為后備力量,特別是c++模塊,彌補gdscript的內存、速度性能瓶頸,應該是非常棒的選擇,引入spine的支持,對2d開發(fā)可以說更上一層樓。


目前也有goost、voxel等c++庫可以作為學習參考



初探Godot的三種C++集成、運行調試以及Spine官方運行庫的集成的評論 (共 條)

分享到微博請遵守國家法律
垦利县| 邵阳市| 大宁县| 佛山市| 扎鲁特旗| 克山县| 昌邑市| 孟州市| 南阳市| 合川市| 常宁市| 高要市| 双流县| 海门市| 方正县| 阿拉善右旗| 祁门县| 同心县| 湖口县| 太和县| 开原市| 肇庆市| 从化市| 鱼台县| 章丘市| 高密市| 湘潭县| 桂东县| 慈溪市| 澎湖县| 象山县| 玛纳斯县| 安远县| 广平县| 兴国县| 枣强县| 常州市| 陆良县| 富蕴县| 曲沃县| 嫩江县|