[Разработка игр, Godot] Принцип работы EditorScript
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Всем привет. С вами я, stalker320, и сегодня я хотел бы рассказать про написание служебных скриптов, запускающихся в редакторе. Всем желающим прочесть - добро пожаловать под катEditorScript - это такой скрипт, который можно запустить по нажатию комбинации Ctrl+Shift+X прямо из движка. Он может исполнять различные служебные функции. К примеру создать необходимую структуру каталогов в проекте.
tool
extends EditorScript
var folders: PoolStringArray = [# Наши папки к созданию
"res://assets/textures/",# Их определяет разработчик
"res://assets/fonts/",# Просто напишите сюда все конечные пути, что хотите создать
"res://resources/",
"res://addons/",
"res://scenes/",
"res://scripts/singletons/",
"res://scripts/resources/",
"res://scripts/editor_scripts/"
]
var placeholder: Resource = load("res://placeholder.tres")
# Ресурс-пустышка для сохранения структуры файлов. По желанию
func _run() -> void: # Входная функция этого скрипта
var dir = Directory.new()
for folder in folders: # проход по списку папок
if !dir.dir_exists(folder):
var err = OK
err = dir.make_dir_recursive(folder)
if err != OK:
prints("Error", err)
return
else:
if !dir.file_exists(folder.plus_file("placeholder.tres")):
# Создаём файл плейсхолдера для гита если не существует
err = ResourceSaver.save(folder.plus_file("placeholder.tres"), placeholder)
if err != OK:
prints("Error", err)
return
else:
# Говорим что создали (не обязательно)
prints("Making", folder)
prints("Making", folder.plus_file("placeholder.tres"))
print("Successful. Structure created or already exists.")
return
К сожалению я освоил их не очень хорошо, поэтому создать генератор какого-нибудь API для дальнейшего моддинга игры фанатами пока не вышло. (Хотя создать необходимую структуру файлов вышло, а это значит, что кто-либо другой может расширить функционал через словарь и создавать необходимые скрипты). Кроме того, чтобы создавать нужную структуру файлов прямо в редакторе, через метод get_scene() можно взаимодействовать и с самой сценой (Достойные примеры скриптов и сцен, к сожалению, отсутствуют).Простите, что статья вышла короткой, но я в первую очередь хотел показать скрипт как пример, а также объяснить на русском языке как это использовать.Спасибо за внимание. Не думаю, что буду писать статьи в дальнейшем очень часто, но у меня есть идеи, о чём можно написать.
===========
Источник:
habr.com
===========
Похожие новости:
- [Программирование, .NET, PowerShell, Алгоритмы, Разработка под Windows] Powershell настоящий язык программирования. Скрипт оптимизации рутины в техподдержке
- [Программирование, Java, Промышленное программирование, Тестирование веб-сервисов] Как подружить Redis Cluster c Testcontainers?
- [Разработка игр, Игры и игровые приставки] Бесплатный онлайн-фестиваль «Хочу в геймдев»
- [Разработка веб-сайтов, Программирование, Haskell, Функциональное программирование] Создаем веб-приложение на Haskell с использованием Reflex. Часть 4
- [Open source, Программирование, Системное программирование, Компиляторы, Rust] Rust 1.53.0: IntoIterator для массивов, "|" в шаблонах, Unicode-идентификаторы, поддержка имени HEAD-ветки в Cargo (перевод)
- [Конференции, Интервью] Реактивное программирование из первых рук
- [Программирование, Хакатоны, Логические игры] Секретное агентство Undercover — операция ESCAPE THE ROOM
- [ERP-системы, Визуализация данных, Разработка под e-commerce, Промышленное программирование] Автозаказ: как сделать так, чтобы нужные продукты сами попадали на полки 17 000 магазинов по всей стране
- [JavaScript, Разработка игр] SpaceShooter на Phaser 3
- [Ненормальное программирование, Python, Обработка изображений, Машинное обучение, Разработка под Windows] Управляем звуком ПК от активности пользователя с помощью Python
Теги для поиска: #_razrabotka_igr (Разработка игр), #_godot, #_gdscript, #_programmirovanie (программирование), #_godot_engine, #_editorscript, #_razrabotka_igr (
Разработка игр
), #_godot
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:02
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Всем привет. С вами я, stalker320, и сегодня я хотел бы рассказать про написание служебных скриптов, запускающихся в редакторе. Всем желающим прочесть - добро пожаловать под катEditorScript - это такой скрипт, который можно запустить по нажатию комбинации Ctrl+Shift+X прямо из движка. Он может исполнять различные служебные функции. К примеру создать необходимую структуру каталогов в проекте. tool
extends EditorScript var folders: PoolStringArray = [# Наши папки к созданию "res://assets/textures/",# Их определяет разработчик "res://assets/fonts/",# Просто напишите сюда все конечные пути, что хотите создать "res://resources/", "res://addons/", "res://scenes/", "res://scripts/singletons/", "res://scripts/resources/", "res://scripts/editor_scripts/" ] var placeholder: Resource = load("res://placeholder.tres") # Ресурс-пустышка для сохранения структуры файлов. По желанию func _run() -> void: # Входная функция этого скрипта var dir = Directory.new() for folder in folders: # проход по списку папок if !dir.dir_exists(folder): var err = OK err = dir.make_dir_recursive(folder) if err != OK: prints("Error", err) return else: if !dir.file_exists(folder.plus_file("placeholder.tres")): # Создаём файл плейсхолдера для гита если не существует err = ResourceSaver.save(folder.plus_file("placeholder.tres"), placeholder) if err != OK: prints("Error", err) return else: # Говорим что создали (не обязательно) prints("Making", folder) prints("Making", folder.plus_file("placeholder.tres")) print("Successful. Structure created or already exists.") return =========== Источник: habr.com =========== Похожие новости:
Разработка игр ), #_godot |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:02
Часовой пояс: UTC + 5