Visual Studio або VS Code
Примітка
Ця документація призначена для внеску в ігровий рушій, а не для використання Visual Studio Code як редактора C# або GDScript. Щоб написати код C# або GDScript у зовнішньому редакторі, див. the C# guide to configure an external editor або the GDScript guide to using an external text editor.
Visual Studio Code це безкоштовний міжплатформний редактор коду від Microsoft (не плутати з visual Studio).
Імпорт проекту
Переконайтеся, що встановлено розширення C/C++. Ви можете знайти інструкції в офіційній документації. Крім того, замість нього можна використовувати clangd.
У разі використання розширення clangd запустіть
scons compiledb=yes.На головному екрані Visual Studio Code відкрийте кореневу папку Godot за допомогою Файл > Відкрити папку....
Натисніть Ctrl + Shift + P, щоб відкрити вікно командного рядка, і введіть Налаштувати завдання.
Виберіть параметр Створити файл tasks.json із шаблону.
Потім виберіть Інші.
Якщо такий параметр, як Створити файл tasks.json із шаблону, недоступний, або видаліть файл, якщо він уже існує у вашій папці, або створіть файл
.vscode/tasks.jsonвручну. Перегляньте Завдання у коді Visual Studio, щоб дізнатися більше про завдання.У файлі
tasks.jsonзнайдіть масив"tasks"і додайте до нього новий розділ:.vscode/tasks.json{ "label": "build", "group": "build", "type": "shell", "command": "scons", "args": [ // enable for debugging with breakpoints "dev_build=yes", ], "problemMatcher": "$msCompile" }
Приклад заповненого tasks.json.
Аргументи можуть бути різними залежно від ваших власних налаштувань і потреб. Перегляньте Знайомство з системою побудови повний список аргументів.
Налагодження проекту
Щоб запустити та налагодити проект, вам потрібно створити нову конфігурацію у файлі launch.json.
Натисніть Ctrl + Shift + D, щоб відкрити панель «Виконати».
Якщо файл
launch.jsonвідсутній, вам буде запропоновано створити новий.
Виберіть C++ (GDB/LLDB). Тут може бути інша опція, яка залежить від платформи. Якщо вибрано, відповідно налаштуйте наданий приклад конфігурації.
У файлі
launch.jsonзнайдіть масив"configurations"і додайте до нього новий розділ:
{
"name": "Launch Project",
"type": "lldb",
"request": "launch",
// Change to godot.linuxbsd.editor.dev.x86_64.llvm for llvm-based builds.
"program": "${workspaceFolder}/bin/godot.linuxbsd.editor.dev.x86_64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": [ "--editor", "--path", "path-to-your-godot-project-folder" ],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "cppdbg",
"request": "launch",
// Change to godot.linuxbsd.editor.dev.x86_64.llvm for llvm-based builds.
"program": "${workspaceFolder}/bin/godot.linuxbsd.editor.dev.x86_64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": [ "--editor", "--path", "path-to-your-godot-project-folder" ],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"setupCommands":
[
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Load custom pretty-printers for Godot types.",
"text": "source ${workspaceRoot}/misc/utility/godot_gdb_pretty_print.py"
}
],
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/bin/godot.windows.editor.dev.x86_64.exe",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": [ "--editor", "--path", "path-to-your-godot-project-folder" ],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"console": "internalConsole",
"visualizerFile": "${workspaceFolder}/platform/windows/godot.natvis",
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/bin/godot.macos.editor.x86_64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": ["--editor", "--path", "path-to-your-godot-project-folder"],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/bin/godot.macos.editor.arm64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": ["--editor", "--path", "path-to-your-godot-project-folder"],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build"
}
Приклад заповненого launch.json.
Примітка
Через спорадичні проблеми з продуктивністю рекомендується використовувати LLDB замість GDB на системах на базі Unix. Переконайтеся, що для конфігурацій, що використовують lldb, встановлено розширення CodeLLDB.
Якщо у вас виникли проблеми з lldb, ви можете розглянути можливість використання gdb (дивіться конфігурацію LinuxBSD_gdb).
Зауважте, що lldb може краще працювати зі збірками на основі LLVM. Перегляньте Компіляція для Linux, *BSD для отримання додаткової інформації.
Ім’я під program залежить від конфігурації вашої збірки, напр. godot.linuxbsd.editor.dev.x86_64 для 64-розрядної платформи LinuxBSD з target=editor і dev_build=yes.
Налаштування Intellisense
Для розширення C/C++:
Щоб виправити можливі помилки включення, вам потрібно налаштувати деякі параметри у файлі c_cpp_properties.json.
По-перше, переконайтеся, що створили проект, оскільки потрібно згенерувати деякі файли.
Відредагуйте файл конфігурації C/C++ за допомогою інтерфейсу користувача або за допомогою тексту:
Додайте включений шлях для вашої платформи, наприклад,
${workspaceFolder}/platform/windows.Додайте визначення для редактора
TOOLS_ENABLED, збірки налагодженняDEBUG_ENABLEDі тестиTESTS_ENABLED.Переконайтеся, що шлях компілятора налаштовано правильно для компілятора, який ви використовуєте. Перегляньте Знайомство з системою побудови для отримання додаткової інформації про вашу платформу.
Файл
c_cpp_properties.jsonмає виглядати приблизно так для Windows:.vscode/c_cpp_properties.json{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "${workspaceFolder}/platform/windows" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE", "TOOLS_ENABLED", "DEBUG_ENABLED", "TESTS_ENABLED" ], "windowsSdkVersion": "10.0.22621.0", "compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-msvc-x64" } ], "version": 4 }
Крім того, ви можете використати аргумент scons
compiledb=yesі встановити параметрcompileCommandsдля команд компіляції наcompile_commands.json, який можна знайти в розширеному розділі інтерфейсу користувача конфігурації C/C++.Цей аргумент можна додати до вашого завдання збирання в
tasks.json, оскільки його потрібно буде запускати кожного разу, коли додаються або переміщуються файли.
Якщо у вас виникнуть проблеми, зверніться по допомогу в один із каналів спільноти Godot <https://godotengine.org/community>__.
Порада
Щоб отримати ліннування для XML-файлів посилання на клас, установіть розширення vscode-xml.