Godot父类旋转在继承类中不生效的技术咨询
Godot 4.2.1继承类旋转不生效的问题解答
这不是属性不支持继承的问题,核心原因是子类重写_ready方法时,默认不会自动调用父类的同名方法。
问题分析
父类Dragon的_ready方法里包含了旋转逻辑,但子类FireDragon重写_ready后,没有触发父类的_ready代码,导致旋转操作根本没执行。而动画播放正常,是因为子类自己调用了dragon_frames.play,和父类逻辑无关。
解决方案
在子类的_ready方法中,显式调用父类的_ready方法即可,使用Godot 4的super关键字:
class_name FireDragon extends Dragon func _ready(): super._ready() # 执行父类的旋转逻辑 dragon_frames.play("flying_red_dragon")
补充说明
Godot中所有方法重写时,都不会自动调用父类的对应方法,必须通过super.方法名()显式触发。rotation这类节点属性是完全支持继承的,你遇到的问题只是父类中修改属性的代码未被执行,而非属性本身不能继承。
内容的提问来源于stack exchange,提问作者Yoav
相关产品推荐
相关产品推荐

