在笔者自己做游戏的时候遇到很多情况下需要等待音效播放完,之后做一些时序性的事情,所以笔者实现了让 AudioKit 的 ActionKit 支持的功能。
基本使用
using UnityEngine;
namespace QFramework.Example
{
public class AudioKitActionExample : MonoBehaviour
{
private void Start()
{
PlaySoundAction
.Allocate("resources://button_clicked", () =>
{
Debug.Log("button_clicked finish");
})
.Start(this);
}
}
}
这样就实现了一个简单的当音效播放完之后做 XXX 的功能。
与 Sequence、Repeat、Parallel 配合
这三个本质都是 Sequence,所以这里只展示 PlaySound 在 Sequence 的用法,如下:
using UnityEngine;
namespace QFramework.Example
{
public class AudioKitActionExample : MonoBehaviour
{
private void Start()
{
var heroClip = Resources.Load<AudioClip>("hero_hurt");
ActionKit.Sequence()
.Delay(1.0f)
.PlaySound("resources://button_clicked")
.Delay(1.0f)
.PlaySound(heroClip)
.Start(this);
}
}
}
与 ActionKit 的 Sequence 配合,可以做一些复杂的效果,比如延时几秒后播放某个音效等。
PlaySound 就介绍到这里。