[Разработка игр, Godot] Принцип работы EditorScript

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
21-Июн-2021 01:36

Всем привет. С вами я, 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
===========

Похожие новости: Теги для поиска: #_razrabotka_igr (Разработка игр), #_godot, #_gdscript, #_programmirovanie (программирование), #_godot_engine, #_editorscript, #_razrabotka_igr (
Разработка игр
)
, #_godot
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 14:14
Часовой пояс: UTC + 5