如何让AnimationPlayer切换场景时持续播放?(昼夜循环场景)
解决Godot昼夜循环跨场景持续播放的方案
你已经选对了方向——用Autoload就能搞定,下面是具体的操作步骤,新手友好:
把昼夜循环节点做成独立场景
- 新建一个场景(比如命名为
DayNightCycle.tscn),把你的AnimationPlayer和CanvasModulate放进这个场景里。注意CanvasModulate要作为根节点或者直接挂在根节点下,确保它能影响所有场景的渲染。 - 在动画编辑器里给
AnimationPlayer的昼夜循环动画勾选Loop,让它自动循环播放。
- 新建一个场景(比如命名为
设置Autoload
- 打开项目设置(Project Settings),切换到AutoLoad标签页。
- 点击"Add"按钮,选择你刚才做的
DayNightCycle.tscn,给它起个全局可用的名字(比如GlobalDayNight),然后勾选"Enabled"。这样游戏启动时这个节点会自动加载,并且不会随场景切换被销毁。
让动画自动启动
- 双击打开
DayNightCycle.tscn,给根节点添加一个脚本,在_ready()函数里写:$AnimationPlayer.play("你的昼夜循环动画名称") - 这样游戏一启动,动画就会开始播放,而且切换场景时会继续运行,不会重启。
- 双击打开
额外注意事项
- 别在其他场景里重复添加
CanvasModulate或AnimationPlayer,不然会出现多个昼夜循环效果冲突。 - 如果需要在其他场景里控制昼夜循环(比如暂停、加速),直接调用全局节点的方法就行,比如:
GlobalDayNight.$AnimationPlayer.speed_scale = 2 # 加速两倍 GlobalDayNight.$AnimationPlayer.pause() # 暂停动画
- 别在其他场景里重复添加
内容的提问来源于stack exchange,提问作者GrumpyIdiot
相关产品推荐
相关产品推荐

