ネイティブ DSP プラグインで作成したパラメーターの説明を Unity に表示する方法をカスタマイズできます。デフォルトでは、Unity はこれらのパラメーターの説明をスライダーとして表示します。ただし、プラグインの中には、ユーザーがより詳細にコントロールできるように、より複雑なユーザーインタラクションを必要とするものもあります。
C# を使用して GUI をカスタマイズし、デフォルトのスライダーを置き換えることができます。カスタム GUI の例にアクセスするには、以下を行います。
SDK で、NativeAudioPlugins-master\GUICode\AudioPluginDemoGUI に移動します。
Visual Studio で AudioPluginDemoGUI.sln プロジェクトを開くか、このフォルダー内の GUI ファイルを別の IDE で開きます。
このページでは、ネイティブオーディオ 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 要素のアイデアについては、サンプルプロジェクト を参照し、好みの 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 を返した場合、Inspector はカスタム GUI の下にデフォルトの UI スライダーを表示します。これは、次の理由で GUI 開発に役立ちます。
カスタム GUI の開発中、すべてのパラメーターを使用できます。
正しいアクションによって、予期したパラメーターの変更結果が得られるか確認できます。
プラグインの GUI を Unity にインポートするには、ネイティブ DSP プラグインと GUI を Unity で使用を参照してください。