如何在Godot的AnimationPlayer中循环播放动画?
解决AnimationPlayer待机动画仅播放一次的循环方法
以下是几种实现AnimationPlayer无限循环播放idle动画的常用方案:
1. 在动画编辑器中直接设置循环属性
这是最直接的无代码方案:
- 打开你的
idle动画编辑界面 - 在动画属性面板(通常在编辑器底部或右侧)找到循环相关选项:
- Godot 4.x:选择
Loop Mode为Loop(而非默认的Once);若需指定循环次数,将Loop Count设为-1表示无限循环 - Godot 3.x:勾选动画的
Loop复选框,或把Loop Count设为-1
- Godot 4.x:选择
- 保存设置后,动画会自动循环播放
2. 通过脚本动态控制循环
如果需要根据游戏逻辑开启/关闭循环,可在调用播放方法时指定循环参数:
# 播放idle动画并设置无限循环 $AnimationPlayer.play("idle", -1)
- 第二个参数为循环次数,
-1代表无限循环,传入正整数则会播放对应次数后停止 - 中途需要停止循环时,调用
$AnimationPlayer.stop()即可
3. 排查中断循环的潜在问题
如果以上设置后仍仅播放一次,检查以下几点:
- 确认没有其他脚本在动画播放完毕后调用
stop()或切换到其他动画 - 若使用
AnimationTree管理动画,检查状态机的过渡条件,是否在动画结束后自动跳转到了非循环状态 - 确认动画时长设置正确,没有被意外截断导致提前结束
内容的提问来源于stack exchange,提问作者Tristan F.-R.
相关产品推荐
相关产品推荐

