using Godot; public partial class GameEnding : Node3D { public void OnGameEnding() { var bgmPlayer = GetTree().Root.GetNode("BgmPlayer"); bgmPlayer.Stop(); var videoPlayer = GetNode("VideoStreamPlayer"); videoPlayer.Play(); videoPlayer.Finished += CutsceneOver; var gameManager = GetTree().Root.GetNode("Main/GameManager"); gameManager.OnLevelClear(); } public void CutsceneOver() { var bgmPlayer = GetTree().Root.GetNode("BgmPlayer"); bgmPlayer.ProcessMode = ProcessModeEnum.Always; bgmPlayer.SetBGMFromFilepath("Audio/BGM/GameEnding.ogg"); bgmPlayer.PlayBGM(); var animationPlayer = GetNode("AnimationPlayer"); animationPlayer.Play("GameEnding"); animationPlayer.AnimationFinished += AfterCredits; } public void AfterCredits(StringName animationName) { var gameManager = GetTree().Root.GetNode("Main/GameManager"); gameManager.ReloadGameScene(); } }