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

UE5蓝图中播放背景音乐

1.创建背景音乐Cue(音效混合器)

2.勾选looping 循环播放背景音乐

3.在关卡蓝图中

Event BeginPlay-PlaySound2D

Sound选择自己创建的Bgm_Cue

蓝图播放声音方法二:

蓝图播放3D声音函数 Play Sound at Location

在创建的声音混合器中sound cue 勾选1:重载衰减;2:修改衰减距离等其他参数;

最后在Play sound at Location 的Sound中选择创建的Sound Cue(如:Fire_Cue)即可

使用代码播放声音方法一

.h文件中

头文件引用

#include "Kismet/GameplayStatics.h"

头文件声音定义声明

private:

USoundBase* Sound;

.cpp文件中

写在Sets default values中的代码

不写在BeginPlay()中最好,在BeginPlay()中不报错能运行,但是打包之后测试会没有声音

Sound = LoadObject(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(hit);

FoodAudio = Cast(food);

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

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

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