Unity:我将如何在C++中为Unity使用的一些元素创建图形

Unity: How would I create the graphics for some elements in C++ to be used by Unity?

本文关键字:Unity 图形 创建 元素 中为 C++      更新时间:2023-10-16

首先,我知道"正确"的答案是将所有内容都移植到C#。请不要麻烦发布答案。这是我们的长期目标。我不需要听人重述。

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

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

我确实看到过一篇帖子,其中谈到了做一些类似的事情,C++将纹理推送到OpenGL中,Unity将在那里渲染它们。在我开始黑客攻击之前,有没有文章讨论过如何在PC上使用DirectX来做到这一点?

这听起来很简单,但我很感激它们之间的接口。unity网站上的文档对接口的细节有点稀疏。

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

Ralph

我想我找到了它,至少是一个起点。我应该有更好的RTF Med手册,我的坏。

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

指本项目

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

我希望这能帮助其他人。