从Visual Studio应用程序控制Unity3D

Control Unity3D from Visual Studio application

本文关键字:程序控制 Unity3D 应用 Studio Visual      更新时间:2023-10-16

我一直在开发使用3D引擎来绘制模型的应用程序,主要使用Ogre3D。但现在我想开始与Unity3D工作,我想有控制像SDK从我正在开发的应用程序。我想:

  • 控制摄像机的位置和方向。

  • 从场景中加载和移除对象

我对黑客很好,所以如果有一个不那么直接的解决方案,我很好。

首先,你不能直接将Unity集成到另一个应用程序中;它被设计为作为独立的可执行文件运行。(如果这已经改变,请纠正我…)

然而,我用c#做了类似的事情。在c++中,工作流程将非常相似:我从c# exe启动Unity应用程序;这些命令(例如设置摄像机位置)随后被序列化,并通过网络套接字在c#应用程序和Unity程序之间交换。根据您设计网络协议的方式,您可以设置和查询各种值。

就我个人而言,我建议通过JSON进行序列化,因为c++和Unity都有易于使用的JSON库。

如果你真的想把Unity显示集成到你的应用程序中,事情就变得棘手了。在我的例子中,我不得不在无框架窗口模式下启动Unity,并使用一些WinAPI技巧将其重新父级到WPF控件中。这部分取决于您使用的GUI工具包,因此很遗憾我无法在这里提供任何帮助。