Menu
CoddyTech

Onready

Часть раздела Узлы и сцены путешествия по Godot на Coddy. Урок 21 из 28.

Обращение к $Face/Eyes в каждом кадре приводит к поиску узла 60 раз в секунду. Лучше найти его один раз и сохранить в переменной.

Переменные в начале скрипта создаются, когда узел создан. Его дочерние узлы ещё не присоединены, поэтому $Face/Eyes ничего не найдёт, и Godot не запустит игру. Добавьте @onready перед объявлением, и Godot присвоит значение переменной, когда узел будет готов, прямо перед выполнением _ready():

@onready var mouth = $Face/Mouth

func _ready():
	mouth.position.y += 2

После этого mouth будет обозначать узел во всех функциях скрипта.

challenge icon

Задание

Легко

Сделай робота с головокружением, у которого вращаются глаза.

  1. В начале скрипта сохрани глаза в переменной: @onready var eyes = $Face/Eyes.
  2. В _process() вращай eyes по часовой стрелке на пол-оборота (180 градусов) каждую секунду.

Нажми «Играть»: глаза вращаются вокруг центра лица, а робот остается неподвижным. Затем нажми «Проверить».

Попробуйте сами

extends Node2D

func _process(delta):
	pass

Все уроки раздела Узлы и сцены

Потренируйтесь самостоятельно: Песочница Godot