首页 > 编程语言 >如何编译Godot(Godot & Godot with C#)

如何编译Godot(Godot & Godot with C#)

时间:2024-05-12 10:31:55浏览次数:20  
标签:Godot C# mono godot 编译 64 windows editor

要在Windows下编译Godot, 需要以下环境:

  • Visual Studio Community:使用最新版本。

  • MinGW-w64:可以替代 Visual Studio。请务必将其安装/配置为使用 posix 线程模型。使用 MinGW 编译主分支时,需要 GCC 9 或更高版本。

  • Python 3.6+:确保在安装程序中启用将 Python 添加到环境变量中。

  • SCons 3.0+:构建系统。建议使用最新版本,特别是为了正确支持最近发布的 Visual Studio。

为了方便起见,建议使用 scoop 安装所需的软件,因为它会默认将软件的路径配置到环境变量,相较于手动安装更省事一些。

安装scoop

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

为 Scoop 设置代理

可选:如果你的scoop无法正常下载应用

# scoop config proxy ip:port
scoop config proxy 127.0.0.1:7890

安装环境

scoop install gcc python scons make mingw

安装 scons

python -m pip install scons

编译 Godot

下载源代码

git clone https://github.com/godotengine/godot.git

使用 scons 编译源代码

scons platform=windows

等待编译完成后,可执行文件可在 godot/bin/ 目录下看到。

godot
└─bin
  └─godot.windows.editor.x86_64.console.exe
  └─godot.windows.editor.x86_64.exe
  └─godot.windows.editor.x86_64.exp
  └─godot.windows.editor.x86_64.lib

编译 Godot with C#

使用源代码构建出 mono 版本的godot需要安装 .NET SDK

下载源代码

git clone https://github.com/godotengine/godot.git

使用 scons 编译源代码

若要启用 godotc# 支持,需要在构建时添加 module_mono_enabled=yes 命令。

scons platform=windows module_mono_enabled=yes

命令执行后,godot的文件目录结构应如下所示。

godot
└─bin
  └─godot.windows.editor.x86_64.mono.console.exe
  └─godot.windows.editor.x86_64.mono.exe
  └─godot.windows.editor.x86_64.mono.exp
  └─godot.windows.editor.x86_64.mono.lib

但此时的 godot mono 还无法运行,我们需要为其添加绑定。

使用 godot mono 生成 .Net glue

在 godot 目录下输入以下命令。

该命令将指示 Godot 在 godot/modules/mono/glue/GodotSharp/GodotSharp/Generated 目录下生成 Godot API 的 C# 绑定文件,并在 godot/modules/mono/glue/GodotSharp/GodotSharpEditor/Generated 目录下生成编辑器工具的 C# 绑定文件。

bin/godot.windows.editor.x86_64.mono --headless --generate-mono-glue modules/mono/glue

使用python脚本依照glue生成托管库

生成 .NET glue 后,可以使用脚本生成托管库。

python3 ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin

命令执行后,bin/ 目录下应该会生成出一个 GodotSharp 目录。

有了它,godot mono 就可以使用 c# 开发项目了。

godot
└─bin
  └─GodotSharp/
  └─godot.windows.editor.x86_64.mono.console.exe
  └─godot.windows.editor.x86_64.mono.exe
  └─godot.windows.editor.x86_64.mono.exp
  └─godot.windows.editor.x86_64.mono.lib

参考文章

Scoop

Scoop Proxy

Godot Docs:Compiling for windows

Godot Docs:Compiling with dotnet

标签:Godot,C#,mono,godot,编译,64,windows,editor
From: https://www.cnblogs.com/soryu-ryouji/p/18187549

相关文章

  • IceRPC之服务器地址与TLS的安全性->快乐的RPC
    作者引言.Net8.0下的新RPC很高兴啊,我们来到了IceRPC之服务器地址与TLS的安全性->快乐的RPC,基础引导,让自已不在迷茫,快乐的畅游世界。服务器地址ServerAddress了解服务器地址的概念和语法。语法服务器地址URI具有以下语法:protocol://host[:port][?name=value][&nam......
  • PLY文件格式及cpp解析
    PLY(PolygonFileFormat,多边形文件格式)文件用于存储GeometryObjectData(包括vertices,faceandotherelement顶点/面片/其它属性)文件格式:HeaderVertexListFaceList(listsofotherelements)Header:以ply开始,以end_header结束第二行format指定是文本格式(A......
  • webgl和canvas的区别
    webgl和canvas的区别WebGL和Canvas的主要区别在于它们的渲染方式、功能复杂性、以及编程难度。12渲染方式:Canvas使用2D渲染上下文来绘制图形和图像,基于像素的绘图系统,通过JavaScript脚本控制渲染过程。而WebGL(WebGraphicsLibrary)是基于OpenGLES标......
  • sql学习:终于把sql case语句使用讲明白了,一看就懂
    作者|幸福it民工来源|今日头条在数据库查询分析中,经常遇到case条件判断,总结出来供大家参考,下面通过两个实例给大家讲解。case用途介绍:CASE是多条件分支语句,相比IF…ELSE语句,CASE语句进行分支流程控制可以使代码更加晰,易于理解。CASE语句也根据表达式逻辑值的真假来决定执......
  • C语言第四篇-操作符
    算术操作符#include<stdio.h>intmain(){inta=8;intb=4;intc=0;intd=0;c=a/b;//8/4=2;8/2.0=4.0;d=a%b;//8.0%2是错误的,%两端必须为整数;return0;}移位操作符<<左移操作符:将一个数的二进制位全部左移若干位。‘>>右移操作......
  • MajorDoMo RCE(CNVD-2024-02175)
    影响平台MajorDoMo<0662e5e漏洞复现fofa搜索语法:app="MajordomoSL"POC:GET/modules/thumb/thumb.php?url=cnRzcDovL2EK&debug=1&transport=%7c%7c%20%28%65%63%68%6f%20%27%5b%53%5d%27%3b%20%65%63%68%6f%20%31%32%33%3b%20%65%63%68%6f%20%27%5b%45%5d%2......
  • SpringBoot3集成WebSocket
    标签:WebSocket,Session,Postman。一、简介WebSocket通过一个TCP连接在客户端和服务器之间建立一个全双工、双向的通信通道,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在WebSocket的API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创......
  • html5新标签 画布 canvas 替代了 flash
    绘制矩形边框,和填充不同的是绘制使用的是strokeRect,和strokeStyle实现的 绘制路径绘制路径的作用是为了设置一个不规则的多边形状态路径都是闭合的,使用路径进行绘制的时候需要既定的步骤:需要设置路径的起点使用绘制命令画出路径封闭路径填充或者绘制已经封闭路......
  • 代码(CODE)到二进制(BIN)文件的编译过程
    这些步骤将源代码转换成可以在目标硬件上执行的机器代码。以下是这个过程的一般描述:预处理(Preprocessing):源代码(如.c、.cpp、.s等)首先被预处理。预处理器处理源文件中的宏定义、条件编译指令、包含指令(如#include)等。预处理器的输出通常是一个.i或.ii文件,它包含了所有宏替......
  • PLC的开放式用户协议
    1.OUC开放式用户协议,包括ISO,ISO-on-TCP,TCP/IP,UDP四种。西门子PLC中有多种不同的方式建立连接。2.在硬件组态中建立TCP通信打开硬件组图,网络视图添加新连接填入本地ID,关于本地ID:针对1513实测过,ID的取值范围从16#01到16#999,但是16#01-16#99大概率被系统占用了,可用范围从1......