(Godot4.X) 効果音(SE)を鳴らすstaticメソッド

    // SEを再生するstaticメソッド
    public static void Play_SE(AudioStream SESound, Node parentNode)
    {
        if (SESound != null && parentNode != null)
        {
            var player = new AudioStreamPlayer
            {
                Stream = SESound,
                Bus = "SFX"
            };
            parentNode.AddChild(player);
            player.Play();
            // 再生終了後に削除(オプション)
            player.Finished += () => player.QueueFree();
        }
    }

このコードをstaticクラスに書いておけばどこからでも音を鳴らすことができる。

引数には[Export]などで音楽ファイルを読み込ませておいたものを引数に入れる。

2つ目の引数は、thisにしたらい。

[Export] public AudioStream SESound { get; set; } // SEファイルへの参照

//音を鳴らす

XXStaticClass.Play_SE(SESound,this);

こんな感じ。

他にも便利なやり方はいくらでもあるだろうけど、小規模なゲームなら十分だ。