您可以自定义 Unity 如何显示您在原生 DSP 插件中创建的参数描述。默认情况下,Unity 会将这些参数描述显示为滑动条。但是,某些插件需要更复杂的用户交互,以便用户进行更多控制。
您可以使用 C# 自定义 GUI 并替换默认滑动条。要访问自定义 GUI 的示例,请执行以下操作:
在 SDK 中,前往 NativeAudioPlugins-master\GUICode\AudioPluginDemoGUI。
在 Visual Studio 中打开 AudioPluginDemoGUI.sln 项目,或在另一个集成开发环境 (IDE) 中打开此文件夹中的 GUI 文件。
本页面概述了为原生音频 DSP 插件创建 GUI 的步骤。
Unity 在加载原生插件 DLL 文件并注册包含的音频插件后,会搜索与已注册插件名称匹配的相应 GUI 文件。
要确保 Unity 将自定义 GUI 链接到插件,请执行以下操作:
打开您的自定义 GUI 类。
确保您的 GUI 类继承自 IAudioEffectPluginGUI。
重载类的名称 (Name) 属性,使其与插件相同。这是 Unity 用于链接文件的名称,而不是 DLL 文件名。例如:
public override string Name
{
get { return "Demo Equalizer"; }
}
示例音频插件 SDK 提供了一些示例来说明使用不同的方式表示参数,其中包括滤波器曲线。您可以在项目中使用任一示例。
在自定义 GUI 类中,创建要通过用户交互控制的变量。例如:
private float masterGain;
private float lowGain, midGain, highGain;
请参阅示例项目以了解__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary 元素的概念,并创建您的首选 UI 元素。
您需要定义插件中的参数与 GUI 自定义之间的关系。OnGUI(IAudioEffectPlugin plugin) 布尔函数将接收原生插件的句柄,然后使用它读取和写入原生插件定义的参数。要绑定参数,请执行以下操作:
在 GUI 类中查找 OnGUI(IAudioEffectPlugin plugin) 布尔函数。
使用 plugin.GetFloatParameter 从原生插件读取每个参数,并将其映射到 GUI 变量。
plugin.GetFloatParameter("MasterGain", out masterGain);
如果找到参数,则返回 true。
使用 plugin.SetFloatParameter 可将插件参数的值设置为 GUI 变量的当前值。
plugin.SetFloatParameter("MasterGain", masterGain);
如果找到该参数,则返回 true。
要避免原生 DSP 和 GUI 代码中的参数定义重复或矛盾,请使用 plugin.GetFloatParameterInfo 函数。
plugin.GetFloatParameterInfo("NAME", out minVal, out maxVal, out defVal);
如果 OnGUI 函数返回 true,则检视面板将在自定义 GUI 下方显示默认 UI 滑动条。这对于开发很有用,因为:
在开发自定义 GUI 时,所有参数都可用。
您可以检查正确的操作是否会导致预期的参数更改。
要将插件的 GUI 导入 Unity,请参阅在 Unity 中使用原生 DSP 插件和 GUI。