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

为您的音频插件自定义 GUI

您可以自定义 Unity 如何显示您在本机 DSP 插件中创建的参数描述。默认情况下,Unity 将这些参数描述显示为滑块。然而,一些插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
需要更复杂的用户交互,允许用户进行更多控制。

您可以使用 C# 自定义 GUI 并替换默认滑块。要访问自定义 GUI 的示例:

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

  2. 在 SDK 中,导航到NativeAudioPlugins-master\GUICode\AudioPluginDemoGUI.

  3. 打开AudioPluginDemoGUI.sln项目,或在另一个 IDE 中打开此文件夹中的 GUI 文件。

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

1. 将 GUI 链接到音频插件

Unity 加载本机插件Unity 外部创建以在 Unity 中使用的特定于平台的本机代码库。允许您访问作系统调用和第三方代码库等功能,否则 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 元素和 UI 元素的想法,请参阅示例项目 创建您喜欢的 UI 元素。

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

您需要定义插件中的参数如何与 GUI 自定义相关。这OnGUI(IAudioEffectPlugin plugin)布尔函数接收本机插件的句柄,然后使用它来读取和写入本机插件定义的参数。要绑定您的参数,请执行以下作:

  1. 找到OnGUI(IAudioEffectPlugin plugin)boolean 函数。

  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,则检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
    请参阅术语表
    在自定义 GUI 下方显示默认 UI 滑块。这对于 GUI 开发很有用,因为:

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

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

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

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

其他资源


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