GodotJS
该项目通过利用V8的高性能特性,为Godot 4.x添加了TypeScript/JavaScript支持,将TypeScript愉悦的开发体验引入Godot。
[!注意] 核心功能已实现并基本可用,但仍在测试中。
特性
- Godot脚本语言集成
- 使用V8时可以通过Chrome开发工具进行调试
- 编辑器中的REPL
- 热重载
- 异步模块加载(
import
函数) - 沙箱脚本(非多线程)
- 工作线程
入门指南
第1步: 下载或克隆仓库到您的Godot引擎源码的modules
目录:
cd 您的Godot引擎源码/modules
git clone https://github.com/ialex32x/GodotJS.git
第2步: 将v8
的头文件和库文件放入GodotJS
目录,或直接从GodotJS-Dependencies下载预构建的v8
:
# 下载预构建v8的压缩包
curl https://github.com/ialex32x/GodotJS-Dependencies/releases/download/v8_r6/v8_r6.zip --output 您的下载路径/v8.zip
# 将zip文件解压到您的`GodotJS`目录
# 注意:开关`-o`后面没有空格
7z x -o"您的Godot引擎源码/modules/GodotJS" 您的下载路径/v8.zip
[!注意] 如果您决定自己编译v8,请务必将v8的头文件/库文件放入与预构建v8相同的目录结构中。
模块目录结构如下:
┗━ godot
┗━ modules
┣━ ...
┣━ gltf
┣━ GodotJS
┃ ┣━ bridge-quickjs
┃ ┣━ bridge-v8
┃ ┣━ ...
┃ ┣━ lws
┃ ┗━ v8
┃ ┣━ include
┃ ┣━ linux.x86_64.release
┃ ┣━ macos.arm64.release
┃ ┗━ windows.x86_64.release
┣━ gridmap
┣━ ...
当前使用的v8
版本是12.4.254.20
。
第3步: 编译并启动Godot编辑器
。然后,将TypeScript/JavaScript预设安装到Godot项目中。
[!注意] 由于预构建的
v8
库是使用VS2022的github runner构建的,如果在链接v8_monolith.lib
或libucrt.lib
时遇到"未解析的外部符号"错误,可以通过更新到最新版本的MSVC v143
工具链、Windows Universal CRT SDK
和Visual Studio 2022
本身来解决。
可以从GodotJS-Build下载预构建版本的Godot编辑器
。
由于GodotJS-Build工作流目前是手动运行的,它可能不是从GodotJS
的最新提交构建的。
示例
有关如何在项目中使用GodotJS
的更多信息,请查看GodotJSExample以获取用typescript编写的示例。
别忘了在打开示例项目之前运行npm install
和npx tsc
。
更多详情
脚本编写
实用工具
高级
辅助仓库
- GodotJSExample:一个演示如何使用GodotJS的Godot项目示例
- GodotJS-Build:用于构建支持GodotJS的Godot编辑器的Github工作流
- GodotJS-Dependencies:用于构建GodotJS依赖项(v8, lws)的Github工作流
支持的平台
- Windows:x86_64
- Windows:arm64, UWP
- MacOS:arm64
- MacOS:x86_64
- Linux:x86_64
- Linux:arm64
- Android
- iOS
- WebAssembly(仅quickjs)