要实现的功能非常简单:点击按钮,播放音乐
这个功能非常基础,就两步:
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 来播放声音。这个组件会返回一个当前播放音乐的引用,我们接下来就可以用这个引用来控制音乐是否停止播放:

博客介绍了在UE4中实现点击按钮播放音乐的基础功能,需将.wav格式音乐文件拖入context文件夹,在按钮onclick方法调用play sound 2D。针对多次点击按钮音乐成N重奏问题给出优化办法,还介绍了按一次按钮播放、再按一次停止的进阶功能实现,用spawn sound 2D控制音乐停止。
9776

被折叠的 条评论
为什么被折叠?



