使用 Unity3d 制作 VST

Posted

技术标签:

【中文标题】使用 Unity3d 制作 VST【英文标题】:Make a VST with Unity3d 【发布时间】:2015-11-30 15:14:10 【问题描述】:

是否可以使用 Unity3d 构建 VST?

似乎可以统一构建音频应用程序。

但我想知道是否可以将 DLL 构建为 unityapp?是否可以以某种方式将 VST sdk 与最终构建集成?

【问题讨论】:

【参考方案1】:

Unity 可以在大多数架构上使用本机插件。看起来 VST 是一个原生的 windows dll,你可以用DllImport 运行这些。

在 Unity 中,所有音频都存储在 AudioClips 中,您可以使用 Create、Set 和 Get 修改其数据。您还可以将脚本与编辑器中的音频导入挂钩,以便在加载时使用 AssetPostprocessor.OnPostprocessAudio 更改它。

因此,您必须使用 VST 过滤器对 AudioClip 进行某种类型的 AudioClip 过滤器。

使用 Unity 的一个建议 - 精确的时间安排很困难,因为一切都与主游戏循环相关联,并且它(理想情况下)以显示器刷新的频率运行。如果你想要更多的实时性,你需要将你自己的线程放在后台——它的工作方式与网络上的常见建议相反,只要记住 Unity 中几乎没有线程安全的,所以要更新游戏状态或 AudioClips,您需要在游戏循环中执行此操作。

【讨论】:

这是一个很好的答案,所以把它写成正确的。如果您知道是否可以导出 dll 文件(或用于 mac 的 .vst),将不胜感激。我只能在导出器中看到几个选项。还是我必须以某种方式使用 VisualStudio 等构建 dll? 我不认为这回答了问题,这是关于你是否可以使用 Unity 制作 VST,而不是你是否可以在 Unity 中使用 VST 插件【参考方案2】:

据我所知,至少开箱即用,您不能将导出的 Unity 代码包装在 VST 所需的框架中。这是妨碍在插件主机(例如:DAW)中使用 Unity 接口的步骤。

另一种方法是创建一个 VST/AU 插件,该插件与在插件主机之外运行的 Unity 应用程序通信。

【讨论】:

以上是关于使用 Unity3d 制作 VST的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Unity3D 中使用 NVIDIA FleX 制作软体果冻球?

Unity3d之-使用BMFont制作美术字体

Unity3D——使用UGUI制作小地图

Unity3D发布EXE执行文件制作安装包

Unity3D发布EXE执行文件制作安装包

Unity3d使用TexturePacker制作Atlas