UE5蓝图中播放背景音乐和使用代码播放声音

发布于:2025-05-30 ⋅ 阅读:(23) ⋅ 点赞:(0)

UE5蓝图中播放背景音乐

1.创建背景音乐Cube
在这里插入图片描述
2.勾选looping 循环播放背景音乐
在这里插入图片描述
3.在关卡蓝图中
Event BeginPlay-PlaySound2D
Sound选择自己创建的Bgm_Cube

在这里插入图片描述
蓝图播放声音方法二:
在这里插入图片描述

使用代码播放声音方法一

.h文件中
头文件引用

#include "Kismet/GameplayStatics.h"

头文件声音定义声明

private:
	
	USoundBase* Sound;

.cpp文件中
写在Sets default values中的代码
不写在BeginPlay()中最好,在BeginPlay()中不报错能运行,但是打包之后测试会没有声音

Sound = LoadObject<USoundBase>(NULL, TEXT("'/Game/SnakeAudio/EatFood.EatFood'"));//加载引用虚幻编辑器中的音频,加单引号,不加_C

写在需要播放声音的函数方法中

if (Sound) //避免空指针
{
	UGameplayStatics::PlaySound2D(this, Sound);//播放声音
}

使用代码播放声音方法二

.h文件中
头文件引用

#include "Kismet/GameplayStatics.h"

头文件声音定义声明

private:
	USoundWave* GameOverAudio;
    USoundWave* FoodAudio;

.cpp文件中
写在Sets default values中的代码
不写在BeginPlay()中最好,在BeginPlay()中不报错能运行,但是打包之后测试会没有声音

//加载引用虚幻编辑器中的音频,加单引号,不加_C
auto food = StaticLoadObject(UObject::StaticClass(), nullptr, TEXT("'/Game/SnakeAudio/EatFood.EatFood'"));
auto hit = StaticLoadObject(UObject::StaticClass(), nullptr, TEXT("'/Game/SnakeAudio/Hit.Hit'"));
GameOverAudio = Cast<USoundWave>(hit);
FoodAudio = Cast<USoundWave>(food);

写在需要播放声音的函数方法中

	UGameplayStatics::PlaySound2D(GetWorld(), GameOverAudio, 1.0f);
	UGameplayStatics::PlaySound2D(GetWorld(), FoodAudio, 1.0f);