快捷搜索: 王者荣耀 脱发

UE4 音乐的播放与停止--基于蓝图

要实现的功能非常简单:点击按钮,播放音乐

这个功能非常基础,就两步:

1.将音乐源文件拖到context文件夹中。注意,这里的音乐文件必须是.wav格式的

2.在按钮的onclick方法中,调用 play sound 2D 方法,播放指定的音源

但是这么做有一个问题,就是点击多次按钮的话,会直接触发多次 play sound 2D 事件,音乐就会变成N重奏,感觉特别不好。

就想了一个办法进行优化,基础思路是这样:

1.在widget ui中添加一个名叫isPlayMusic的boolean变量,默认值为false,即还未开始播放音乐。

2.在触发onclick事件是,先通过isPlayMusic来判断当前是否开始播放音乐,如果已经开始播放了,就不管它,否则,就调用play sound 2D,播放音乐,并将isPlayMusic设为true

接下来可以实现一些进阶的功能:按一次按钮播放音乐,在按一次停止播放

1.sound wave本身是不支持暂停或者停止功能的,这里需要添加一个audio component类型的变量MusicComponent

2.接下来这一步是关键,使用spawn sound 2D代替 play sound 2D 来播放声音。这个组件会返回一个当前播放音乐的引用,我们接下来就可以用这个引用来控制音乐是否停止播放:

经验分享 程序员 微信小程序 职场和发展