Unity:如何为Unity使用的C ++中的某些元素创建图形?

时间:2018-12-25 17:42:03

标签: c++ unity3d directx

首先,我知道正确的答案是将所有内容移植到C#。请不要打扰该答案。这是长期目标。我不需要听到重述。

我有一个游戏想(最初)移植到PC上的Unity。它的用户界面非常繁重。我想知道如何在C ++中为UI创建图形?我的游戏当前使用GDI创建对话框,每个对话框都在其自己的缓冲区中,然后将BitBlts创建到屏幕上。

在一个“完美的世界”中,我想尝试将这些缓冲区传递给Unity,然后将它们显示出来,并将所有鼠标/手势事件传递回C ++进行处理。这是一个麻烦,但是比移植所有内容要快得多,这会让我做一些原型/测试来看看它是否实用。然后,我可以一次将屏幕移植到Unity或移植我编写的UI库。

我确实看过一篇文章,其中谈到了一些类似的事情,即C ++将纹理推入OpenGL,然后Unity将其渲染。有没有文章讨论如何在我开始入侵之前使用DirectX在PC上执行此操作?

这听起来很简单,但我希望您能了解一些有关它们之间接口的提示。统一站点上的文档对界面的详细信息很少。

澄清:我的问题确实是我需要用C ++中的DirectX来发送回纹理。我是否需要在C ++和Unity中初始化DirectX,是否需要将显示句柄或其他东西与纹理句柄等传递给C ++?它像调用C ++例程一样返回纹理容易吗?我熟悉如何在C#和C ++之间进行通信以及3D引擎通常如何工作,我需要从HDC填充DirectX纹理,然后以某种方式将该数据传递回Unity for Display。

拉尔夫

1 个答案:

答案 0 :(得分:0)

我认为我发现了,至少是一个起点。我本该对RTFM的手册做得更好,不好。

https://docs.unity3d.com/Manual/NativePluginInterface.html

指的是这个项目

https://bitbucket.org/Unity-Technologies/graphicsdemos/src/default/NativeRenderingPlugin/

希望这对其他人有帮助。