`
aigo
  • 浏览: 2648644 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

[UE4]C++代码实现播放USoundCue和USoundWave以及关闭

UE4 
阅读更多

播放SoundCue

1,音频文件必须是wav,导入工程后

2,新建一个SoundCue资源:右键 -》 Sounds -》 SoundCue

3,将SoundWave摔了拖入编辑器,并连接上Output节点。这样SoundCue就创建完成。如果需要循环播放指定SoundWave,选中后勾选Looping


 

4,在构造函数中加载该SoundCue

static ConstructorHelpers::FObjectFinder<USoundCue> BattleBMG(TEXT("SoundCue'/Game/Audio/BGM/BattleBMG_SC.BattleBMG_SC'"));
USoundCue* SoundBattle = BattleBMG.Object;

 

5,播放SoundCue。播放SoundCue时,需要指定一个Attach对象,要么是一个Pawn,要么是一个Location;播放SoundWave不需要指定位置,只需要指定场景World即可

UAudioComponent* AC = nullptr;
if (SoundBattle)
{
	AC = UGameplayStatics::SpawnSoundAttached(SoundBattle, SelectedHero->GetRootComponent());
}

 

6,停止播放SoundCue:

UAudioComponent::Stop();

 

 

 

播放SoundWave

1,在构造函数加载SoundWave资源:

static ConstructorHelpers::FObjectFinder<USoundWave> SWBattleBGM(TEXT("SoundWave'/Game/Audio/BGM/BattleBMG.BattleBMG'"));
USoundWave* SoundWaveBat = SWBattleBGM.Object;

 

2,播放SoundWave:

if (SoundWaveBat)
{
	SoundWaveBat->bLooping = true;
	UGameplayStatics::PlaySound2D(GetWorld(), SoundWaveBat, 0.3f);
}

 
GetWorld()必须是可以拿到当前Level对象的UObject,比如GameMode。如果是一个不属于任何Level的普通UObject,那么将会播放失败。

3, 停止播放SoundWave:

FAudioDeviceManager* Manager = GEngine->GetAudioDeviceManager();
if (Manager)
{
	Manager->StopSoundsUsingWave(MySoundWave);
}

 需要头文件:#include <AudioDeviceManager.h>

注:4.13版本将StopSoundsUsingWave改成了StopSoundsUsingResource


获取FAudioDeviceManager的另外一个钟方式:

if (FAudioDeviceManager* Manager = FAudioDevice::GetAudioDeviceManager())
{
    Manager->StopSoundsUsingResource(SoundWave);
}
 

 

 

 

 

  • 大小: 101.1 KB
分享到:
评论

相关推荐

    UE4 C++开发超好用的VS插件 Visual Assist X 10.9.2301

    总之,Visual Assist X是UE4 C++开发者的得力助手,它通过增强VS的功能,帮助开发者更高效地编写、理解和维护代码,提升了整体开发效率和代码质量。对于那些处理大型UE4项目的团队来说,Visual Assist X无疑是一个...

    UE4使用C++在蓝图中实现打开外部exe程序功能(含源码)

    至于提供的源码工程"OpenExe",可能包含了实现这个功能的完整示例,包括C++类、函数声明和实现,以及蓝图中的调用逻辑。在分析源码时,重点查看以下几个部分: 1. **C++类**:查找继承自UE4基础类的自定义类,检查...

    UE4 C++教程 虚幻四C++教程

    UE4 C++教程 虚幻四C++教程

    UE4 C++ 离线API

    UE4 C++ 离线API 下载直接使用 无障碍

    ue4 c++ 多边形三角化

    在UE4(Unreal Engine 4)中,C++是一种主要的编程语言,用于实现游戏逻辑和自定义功能。在3D图形处理中,多边形的三角化是一个关键步骤,因为大多数现代图形硬件和软件都支持三角形作为基本渲染单元。本教程将深入...

    UE4蓝图调用C++函数的工程分享

    在UE4(Unreal Engine 4)中,开发者可以结合蓝图和C++代码来构建游戏逻辑,这提供了灵活性和性能的平衡。本工程分享主要关注如何在蓝图中调用C++函数,分为两种主要方式:一是通过继承C++类的蓝图类直接调用,二是...

    ue4蓝图c++动态改变staticmeshactor材质例子动态修改纹理

    实现了通过蓝图把场景中的AStaticMeshActor和两个动态材质实例UMaterialInstanceDynamic 传给c++ 自定义函数参数。 并在自定义函数里面实现两张材质的动态交替变更,其中一张材质还动态加载了本地1.png图片,使得能...

    UE4学习笔记----使用C++之控制球体运动并使用移动粒子效果(源代码)

    在UE4(Unreal Engine 4)中,游戏对象的行为和交互主要通过C++或蓝图实现。本笔记将深入探讨如何使用C++编程语言来控制球体的运动,并结合移动粒子效果来提升游戏视觉体验。以下是你需要了解的关键知识点: 1. **...

    毕业设计基于C++的一款UE4射击游戏源码.zip

    毕业设计基于C++的一款UE4射击游戏源码。一款UE4射击游戏Demo,包含UE4游戏框架及整套联网射击游戏功能。一款UE4射击游戏Demo,包含UE4游戏框架及整套联网射击游戏功能。一款UE4射击游戏Demo,包含UE4游戏框架及整套...

    Unreal Engine 4 UDP 通信C++代码.zip_UE4 socket_UE4 UDP_UE4用UDP_UE4获

    UE4 socket 数据接收以及发送,功能示例

    UE4 UI简单例子 C++

    在UE4(Unreal Engine 4)中,UI系统基于UMG(Unreal Motion Graphics),它提供了一种可视化的方式去创建用户界面,并且可以与C++代码深度集成。本示例"UE4 UI简单例子 C++"展示了如何利用C++编程语言在UE4中创建一...

    UE4vs代码段.zip

    "UE4vs代码段.zip" 文件集合就是这样一个实用资源,它包含了一些预定义的代码片段,可以帮助开发者快速实现特定功能,提高开发效率。 首先,让我们详细了解一下这些代码段的具体内容: 1. **快捷创建碰撞事件的三...

    UE4C++写入CSV文件.docx

    下面是一个简单的示例代码,演示如何使用 C++ 语言在 UE4 中写入 CSV 文件。 首先,需要创建一个继承自 UBlueprintFunctionLibrary 的 C++ 类,名为 UReadFlie。在这个类中,定义了四个静态函数:SetParameter、...

    UE4_UE5播放视频(没有声音)

    UE4_UE5播放视频带声音

    UE4 微信分享SDK

    总之,集成UE4微信分享SDK是一个涉及多平台、多语言的复杂过程,需要理解iOS和Android的开发环境,以及UE4的C++和蓝图系统。但一旦成功集成,你就能为用户提供便捷的社交分享功能,提升游戏的互动性和用户体验。记得...

    UE4 C++JSON读取示例.zip

    在UE4(Unreal Engine 4)中,C++是一种常用的语言进行游戏开发,而JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,常用于存储和传输数据。本示例将详细介绍如何在UE4中使用C++来读取JSON文件。 ...

    UE4的C++离线文档

    该文档包含了UE4 C++ API的所有类、函数、宏、枚举等内容,并提供了详细的说明和示例代码。 文档内容 UE4 C++离线API文档的内容主要分为以下几部分: 类(Classes):该部分包含了UE4 C++ API中所有类的信息,包括...

    UE4游戏编程蓝图c++语言教程

    虚幻引擎4(UE4)提供了两种主要的编程方式,即C++和蓝图。C++是一种通用的文本编程语言,适合进行底层逻辑和性能敏感的代码编写,而蓝图则是一种图形化编程工具,更适合快速原型设计和游戏逻辑的可视化表达。 在UE...

    UE4 画板RenderTarget实现方法.doc

    在UE4(Unreal Engine 4)中,Render Target(渲染目标)是一种强大的技术,它允许开发者将渲染的结果存储在纹理中,以便后续处理或显示。在这个文档中,我们将深入探讨如何利用Render Target在游戏场景中实现画板...

    ue4,c++,平面最小封闭区域识别

    ①:得到线段我们的线段集合S(本次项目鼠标点击得到线段(p1,p2两点)已经在ue4蓝图里面实现,这一步就不过多阐述) ②:移除孤立的线段(两端的点都是孤立的); ③:拆分所有的线段(就是将所有的相交线线段拆...

Global site tag (gtag.js) - Google Analytics