Menu
CoddyTech

Onready

本课属于 Coddy Godot 学习旅程的“节点与场景”单元。第 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 在线编辑器