Я успешно упростил образец хоста Vst.net для прямой загрузки инструмента VST.В основном я только что убрал графический интерфейс и заставил его автоматически запускать несколько тестовых заметок.Этот код работает, когда я собираю его как консольное приложение.
using System;
using Jacobi.Vst.Core;
using Jacobi.Vst.Interop.Host;
using NAudio.Wave;
using CommonUtils.VSTPlugin;
namespace Jacobi.Vst.Samples.Host
{
///<Summary>
/// Gets the answer
///</Summary>
public class pianoVST
{
///<Summary>
/// Gets the answer
///</Summary>
public static VST vst = null;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
}
/// <summary>
/// Play some test notes.
/// </summary>
public void playTest()
{
var asioDriverNames = AsioOut.GetDriverNames();
if (asioDriverNames.Length > 0)
{
MidiVstTest.UtilityAudio.OpenAudio(MidiVstTest.AudioLibrary.NAudio, asioDriverNames[0]);
MidiVstTest.UtilityAudio.StartAudio();
vst = MidiVstTest.UtilityAudio.LoadVST("[path-to-vst-dll]");
for (int i = 0; i < 3; i++)
{
vst.MIDI_NoteOn(60, 100);
System.Threading.Thread.Sleep(1000);
vst.MIDI_NoteOn(60, 0);
System.Threading.Thread.Sleep(1000);
}
}
}
}
}
Однако, когда я строю его как dll, импортирую его в Unity и затем присоединяю к простому GameObject, я не могузаставить его работать или строить.Я получаю сообщение об ошибке:
ArgumentException: The Assembly Jacobi.Vst.Interop is referenced by Jacobi.Vst.Samples.Host ('Assets/Jacobi.Vst.Samples.Host.dll'). But the dll is not allowed to be included or could not be found.
Я перестроил dll взаимодействия C ++ из исходного кода, но ничего не могу сделать, чтобы он работал с Unity.
Есть ли что-то, что я могу сделать, чтобы сделатьdll Jacobi.Vst.Interop хорошо работает с Unity?