Godot Engine多按钮动画异常:点击按钮动画播放错位求助
解决按钮动画播放错误的问题
核心原因
你的问题大概率是动画轨道使用了绝对路径导致的:虽然每个按钮都配有独立的AnimationPlayer,但共享的动画里,属性轨道的目标节点写的是第一个按钮的绝对路径(比如/root/场景名/Button1/目标节点),所以不管哪个AnimationPlayer播放这个动画,都会修改那个绝对路径指向的节点,也就是第一个按钮的元素。
解决步骤
修正动画的轨道路径为相对路径
打开AnimationPlayer的动画编辑器,选中"card_flip"动画,查看每个属性轨道的路径:- 如果原来的路径是绝对路径(开头带
/),改成相对路径。比如:- 若AnimationPlayer和目标节点(比如Sprite)都是按钮的子节点,路径改为
../目标节点名称(../表示回到父节点——按钮本身,再查找子节点) - 或者在选择路径时,从当前AnimationPlayer的父节点(按钮)开始选择目标节点,自动生成相对路径
- 若AnimationPlayer和目标节点(比如Sprite)都是按钮的子节点,路径改为
- 确保所有轨道的路径都是相对自身AnimationPlayer所在按钮的,而非固定指向某个按钮
- 如果原来的路径是绝对路径(开头带
确认信号连接正确
检查每个按钮的pressed信号:- 右键按钮 → 选择"Connect Signal..."
- 确保信号的目标节点是按钮自身,而非第一个按钮
- 确认连接的方法是自身脚本里的
_on_Card_pressed
验证脚本路径
脚本里的$AnimationPlayer是相对挂载脚本的按钮节点的子节点,确保每个按钮下都有且仅有一个名为AnimationPlayer的子节点,路径没有错误
验证效果
修改完成后,点击第二个按钮,就能看到它自己的AnimationPlayer播放动画了,完全不需要复制动画资源。
内容的提问来源于stack exchange,提问作者Boris
相关产品推荐
相关产品推荐

