我一直在开发使用 3D
引擎来渲染模型的应用程序,主要是使用 Ogre3D
。但现在我想开始使用 Unity3D
,我想从我正在开发的应用程序中获得像 SDK
这样的控制。我想:
控制相机的位置和方向。
从场景中加载和删除对象。
我很喜欢黑客攻击,所以如果有一个不是那么简单的解决方案,我也很好。
最佳答案
首先,您不能直接将 Unity 集成到另一个应用程序中;它旨在作为独立的可执行文件运行。 (如果这有变化,请纠正我...)
但是,我用 C# 做了类似的事情。在 C++ 中,工作流程非常相似:我从 C# exe 启动一个 Unity 应用程序;命令(例如设置相机位置)随后被序列化并通过网络套接字在 C# 应用程序和 Unity 程序之间交换。根据您设计该网络协议(protocol)的方式,您可以设置和查询各种值。
就我个人而言,我建议通过 JSON 进行序列化,因为 C++ 和 Unity 都有易于使用的 JSON 库。
如果您想真正将 Unity 显示集成到您的应用程序中,事情就会变得更加棘手。就我而言,我必须在无框架窗口模式下启动 Unity,并使用一些 WinAPI 技巧将其重新设置为 WPF 控件的父级。这部分取决于您使用的 GUI 工具包,因此很遗憾我无法在此处提供任何帮助。
关于c++ - 从 Visual Studio 应用程序控制 Unity3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23883874/