﻿在笔者自己做游戏的时候遇到很多情况下需要等待音效播放完，之后做一些时序性的事情，所以笔者实现了让 AudioKit 的 ActionKit
支持的功能。

## 基本使用

```csharp
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 的用法，如下:

```csharp
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 就介绍到这里。

本文由 QFramework 教程年会员赞助，地址：[https://www.gamepixedu.com/goods/show/55](https://www.gamepixedu.com/goods/show/55)

* QFramework 主页：[qframework.cn](https://qframework.cn)
* QFramework 交流群: 541745166
* QFramework Github 地址: <https://github.com/liangxiegame/qframework>
* QFramework Gitee 地址：<https://gitee.com/liangxiegame/QFramework>