Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ####################################################
- # Некая сцена-ассет, в которой есть дочерняя нода Line2D,
- # в инспекторе объектов годота она стоит первой в списке, значит её индекс = 0
- onready var line_2d : Line2D = get_child(0)
- # Если сделать так
- onready var line_2d_str1 : Line2D = get_node("SomeLine2D")
- # или так
- onready var line_2d_str2 : Line2D = $SomeLine2D
- # то всё равно будет опрос дерева строкой, такшта воть.
- # Это лютая и неочевидная поебень, когда расставляешь переменным-ссылкам индексы из массива
- # Этим следует заниматься на этапе оптимизации, когда игра уже есть.
- func get_line_2d():
- # Если в методе-сеттере есть только эта строка, то он не очень-то и нужен
- return line_2d
- ####################################################
- # А в некой сцене-пользователе вышенаписанного ассета мы можем уже обращаться и к переменной напрямую
- # и к методу-сеттеру, если нам нужно дополнительные действия через сеттер совершать
- func _init():
- # Вызвав функцию отсюда, мы гарантированно обратимся к line_2d, когда она пустая
- test_line_access()
- func test_line_access():
- # Чтобы не получить ошибку, если дёрнешь переменную/метод
- # мы можем так же заюзать yield чтобы дождаться ready
- # от целевого объекта, если дёргаем функцию извне
- # и не знаем, всё ли там готово и загружено
- if !some_asset.line_2d:
- yield(some_asset, "ready")
- print("имя ноды: ", some_asset.get_line_2d().name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement