版本:Unity 6 (6000.0)
语言:英语
开发原生 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. 在 Visual Studio 中打开 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(用户界面) 允许用户与你的应用程序交互。Unity 目前支持三种 UI 系统。 更多信息
参见 词汇表
元素的想法,并创建你喜欢的 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,则 检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许你检查和编辑值。 更多信息
    参见 词汇表
    会在自定义 GUI 下方显示默认的 UI 滑块。这对于 GUI 开发非常有用,因为

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

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

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

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

其他资源


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