Menu
CoddyTech

Onready

CoddyのGodotジャーニー「ノードとシーン」セクションの一部。レッスン 21/27。

毎フレーム$Face/Eyesと書くと、ノードを1秒間に60回探すことになります。一度だけ見つけて、変数に保持しておくほうがよいでしょう。

スクリプトの先頭にある変数は、ノードが作成されたときに作られます。その時点では子ノードはまだ接続されていないため、$Face/Eyesを指定しても何も見つからず、Godotはゲームを開始しません。先頭に@onreadyを付けると、ノードの準備が完了したとき、つまり_ready()が実行される直前に、Godotが変数に値を設定します。

@onready var mouth = $Face/Mouth

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

その後は、スクリプト内のどの関数でもmouthでそのノードを参照できます。

challenge icon

チャレンジ

簡単

目が回るロボットを作りましょう。

  • 目を変数に保持します:@onready var eyes = $Face/Eyes。
  • _process()で、eyesを時計回りに毎秒半回転させます。目は顔の中央を中心に回り、ロボットは動きません。

自分で試してみよう

extends Node2D

func _process(delta):
	pass
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ノードとシーンのすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド