Version: Unity 6.0 (6000.0)
语言 : 中文
开发原生 DSP 音频插件
在 Unity 中使用原生音频 DSP 插件和 GUI

自定义音频插件的 GUI

您可以自定义 Unity 如何显示您在原生 DSP 插件中创建的参数描述。默认情况下,Unity 会将这些参数描述显示为滑动条。但是,某些插件需要更复杂的用户交互,以便用户进行更多控制。

您可以使用 C# 自定义 GUI 并替换默认滑动条。要访问自定义 GUI 的示例,请执行以下操作:

  1. 下载最新的音频插件 SDK

  2. 在 SDK 中,前往 NativeAudioPlugins-master\GUICode\AudioPluginDemoGUI

  3. 在 Visual Studio 中打开 AudioPluginDemoGUI.sln 项目,或在另一个集成开发环境 (IDE) 中打开此文件夹中的 GUI 文件。

本页面概述了为原生音频 DSP 插件创建 GUI 的步骤。

1.将 GUI 链接到音频插件

Unity 在加载原生插件 DLL 文件并注册包含的音频插件后,会搜索与已注册插件名称匹配的相应 GUI 文件。

要确保 Unity 将自定义 GUI 链接到插件,请执行以下操作:

  1. 打开您的自定义 GUI 类。

  2. 确保您的 GUI 类继承自 IAudioEffectPluginGUI

  3. 重载类的名称 (Name) 属性,使其与插件相同。这是 Unity 用于链接文件的名称,而不是 DLL 文件名。例如:

    public override string Name
     {
                get { return "Demo Equalizer"; }
     }
    

2.为 GUI 添加更复杂的用户交互

示例音频插件 SDK 提供了一些示例来说明使用不同的方式表示参数,其中包括滤波器曲线。您可以在项目中使用任一示例。

在自定义 GUI 类中,创建要通过用户交互控制的变量。例如:

private float masterGain;
private float lowGain, midGain, highGain;

请参阅示例项目以了解__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
元素的概念,并创建您的首选 UI 元素。

3.将 GUI 参数绑定到音频插件参数

您需要定义插件中的参数与 GUI 自定义之间的关系。OnGUI(IAudioEffectPlugin plugin) 布尔函数将接收原生插件的句柄,然后使用它读取和写入原生插件定义的参数。要绑定参数,请执行以下操作:

  1. 在 GUI 类中查找 OnGUI(IAudioEffectPlugin plugin) 布尔函数。

  2. 使用 plugin.GetFloatParameter 从原生插件读取每个参数,并将其映射到 GUI 变量。

    plugin.GetFloatParameter("MasterGain", out masterGain);
    

    如果找到参数,则返回 true。

  3. 使用 plugin.SetFloatParameter 可将插件参数的值设置为 GUI 变量的当前值。

    plugin.SetFloatParameter("MasterGain", masterGain);
    

    如果找到该参数,则返回 true。

  4. 要避免原生 DSP 和 GUI 代码中的参数定义重复或矛盾,请使用 plugin.GetFloatParameterInfo 函数。

    plugin.GetFloatParameterInfo("NAME", out minVal, out maxVal, out defVal);
    

    如果 OnGUI 函数返回 true,则检视面板将在自定义 GUI 下方显示默认 UI 滑动条。这对于开发很有用,因为:

  5. 在开发自定义 GUI 时,所有参数都可用。

  6. 您可以检查正确的操作是否会导致预期的参数更改。

4.为音频插件编译并导入 GUI

要将插件的 GUI 导入 Unity,请参阅在 Unity 中使用原生 DSP 插件和 GUI

其他资源


开发原生 DSP 音频插件
在 Unity 中使用原生音频 DSP 插件和 GUI