Godot 4.2.1中使用onready关键字时出现「Unexpected 'identifier' in class body」错误求助
Godot 4.2.1中使用onready关键字时出现「Unexpected 'identifier' in class body」错误求助
兄弟,一看这个错误就知道是踩了Godot版本升级的语法坑!咱们先把核心问题解决掉:
Godot 4.x 系列已经彻底弃用了Godot 3里的onready关键字写法,换成注解形式的@onready了,你直接写旧语法编译器肯定认不出来,才会报「Unexpected 'identifier' in class body」这个错。
先看你问题代码里的错误行:
onready var water_timer = $WaterTimer
只需要在onready前面加个@符号,改成下面这样就可以了:
@onready var water_timer = $WaterTimer
另外看你贴的代码,还有两个小细节可以留意下:
- 你的
_on_Watertimeout()函数名,注意信号自动生成的回调函数名一般是小写开头的(比如你已经写的_on_water_timer_timeout()),要确保和编辑器里连接的信号名称完全对应,不然信号触发了也不会执行; water_level变量你没在脚本里定义,后续运行大概率会报未定义的错误,记得补个变量声明哦。
附上你提供的代码和错误提示截图:
既然你说所有脚本都有这个错误,那统一把所有脚本里的onready替换成@onready就能批量解决啦,祝你养植物的小游戏开发顺利!
备注:内容来源于stack exchange,提问作者NFT Monke
相关产品推荐
相关产品推荐

