版本: Unity 6 (6000.0)
语言英语
  • C#

Texture.GetNativeTexturePtr

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每项建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public IntPtr GetNativeTexturePtr();

返回值

IntPtr 指向底层图形 API 纹理资源的指针。

描述

检索指向 Texture 资源的原生(底层图形 API)指针。

使用此函数检索与 Texture 在原生图形 API 级别表示方式相对应的指针/句柄。这可用于从原生代码插件启用 Texture 操作。

注意:当您使用 Unity API 修改 Texture 对象的像素数据时,它会更改底层图形 API 原生指针。调用 GetNativeTexturePtr 获取新的原生指针。

对于特定平台,Unity 有以下规范

  • 在 Direct3D 类设备上,Unity 返回指向基础 Texture 类型(D3D11 上的ID3D11Resource,D3D12 上的ID3D12Resource)的指针。
  • 在 OpenGL 类设备上,会返回 GL Texture“名称”;将指针强制转换为整数类型以获取它。
  • 在 Metal 上,Unity 返回 id<MTLTexture> 指针。
  • 在 Vulkan 上,Unity 返回 VkImage 指针。
  • 在不支持原生代码插件的平台上,此函数始终返回 NULL。

请注意,在使用多线程渲染时调用此函数会与渲染线程同步(一个缓慢的操作),因此最佳做法是在初始化时仅设置所需的 Texture 指针。

其他资源:原生代码插件Texture2D.CreateExternalTextureCubemap.CreateExternalTextureRenderTexture.GetNativeDepthBufferPtr