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 都代表这个节点。
挑战
简单制作一个眼睛会旋转的眩晕机器人。
- 在脚本顶部,将眼睛保存在一个变量中:
@onready var eyes = $Face/Eyes。 - 在
_process()中,让eyes顺时针旋转,每秒转半圈(180度)。
按“开始”:眼睛绕着脸部中央转圈,机器人保持静止。然后按“检查”。
亲手试试
extends Node2D
func _process(delta):
pass
节点与场景中的所有课
自己练习: Godot 在线编辑器