GDScript. Как создать свою собственную библиотеку в Godot и получить к ней доступ из сценариев игры

Интересно, как мне создать сценарий, содержащий методы, которые я хочу использовать в нескольких сценариях. Я не думаю, что хочу создавать для него глобальный синглтон, потому что я не храню никаких глобальных данных, которые будут сохраняться в нескольких сценах. У меня есть коллекция полезных функций, больше ничего.


person Andruha VUho    schedule 25.07.2020    source источник


Ответы (1)


Возможный способ создать свою собственную библиотеку - просто создать новый скрипт, который ничего не расширяет или extends Object. Используйте ключевое слово static перед вашими функциями.

в my_lib.gd

extends Object

static func my_static_function():
    print("hello from my_lib.gd")

в сценарии игры, вы можете получить к нему доступ с помощью функции preload

const my_library = preload("res://my_lib.gd")

func test():
    my_library.my_static_function()
person Andruha VUho    schedule 25.07.2020
comment
Обычно рекомендуется использовать extends Reference (или extends Resource, если вам нужна сериализация) вместо extends Object, поскольку объекты не выполняют собственное управление памятью. В отличие от ссылки и ресурса, ссылки на объект, хранящийся в переменной, могут стать недействительными без предупреждения. - person Calinou; 27.07.2020
comment
Я бы дал my_lib.gd class_name MyLib, и это позволило бы вызывать функции без предварительной загрузки. Постоянные переменные и статические функции доступны без создания экземпляра объекта. - person NeZvers; 18.01.2021