用于处理 2D 纹理数组的类。
新版图形 API(例如 D3D10 及更高版本、OpenGL ES 3.0 及更高版本,Metal 等)支持“纹理数组”,这是一种包含相同大小和格式的纹理的数组。
从着色器的角度看,它们被视为单个资源,对它们进行采样需要一个额外坐标来指示要采样的数组元素。
通常,纹理数组非常有用,可替代纹理图集,在其他情况下,对象使用一组相同大小纹理(例如地形)。
当前,在 Unity 中,纹理数组没有适用的导入管线,必须在运行时或在编辑器脚本中通过代码创建该管线。
使用 Graphics.CopyTexture 可将像素数据从常规 2D 纹理快速复制到纹理数组的元素中。通过 Editor 脚本
创建序列化纹理数组的常用方式是创建该数组,填充数据(通过 Graphics.CopyTexture 从常规 2D 纹理复制填充,或者通过 SetPixels 或
SetPixels32 填充),然后通过 AssetDatabase.CreateAsset 将其另存为资源。
注意,并非所有平台和 GPU 都支持纹理数组;例如,Direct3D9 和 OpenGL ES 2.0 都不支持纹理数组。使用 SystemInfo.supports2DArrayTextures 进行检查。
allSlices | 只读。此属性在 CommandBuffer.Blit、Graphics.Blit、CommandBuffer.SetRenderTarget 和 Graphics.SetRenderTarget 方法的某些重载中用作参数,指示所有纹理数组切片都已绑定。此属性的值为 -1。 |
depth | 纹理数组元素的数量(只读)。 |
format | 纹理格式(只读)。 |
isReadable | 如果此纹理数组设置为 Read/Write Enabled,则返回 true;否则返回 false。对于通过脚本创建的动态纹理,始终返回 true。 |
Texture2DArray | 创建一个新的纹理数组。 |
Apply | 实际应用先前的全部 SetPixels 更改。 |
GetPixelData | Gets raw data from a Texture for reading or writing. |
GetPixels | 返回单个数组切片的像素颜色。 |
GetPixels32 | 返回单个数组切片的像素颜色。 |
SetPixelData | 用原始预格式化数据设置像素值。 |
SetPixels | 为整个多级渐进纹理级别设置像素颜色。 |
SetPixels32 | 为整个多级渐进纹理级别设置像素颜色。 |
allowThreadedTextureCreation | 允许在任何线程(而不是专用的渲染线程)中创建纹理。 |
currentTextureMemory | The amount of memory currently being used by the non-streaming and mipmap streaming textures combined. |
desiredTextureMemory | 在应用纹理串流预算之前会先使用上述的纹理内存量。 |
GenerateAllMips | 可与采用 Mip 数量的纹理构造函数结合使用,以指示应生成所有 Mip。此字段的值为 -1。 |
nonStreamingTextureCount | 非串流纹理的数量。 |
nonStreamingTextureMemory | 非串流纹理正在使用的内存总量。 |
streamingMipmapUploadCount | 由于纹理 Mipmap 串流而导致上传纹理的次数。 |
streamingRendererCount | 在纹理串流系统中注册的渲染器数量。 |
streamingTextureCount | 串流纹理的数量。 |
streamingTextureDiscardUnusedMips | 强制串流纹理系统立即丢弃所有未使用的 Mipmap,而不是缓存这些 Mipmap 直到超出纹理内存预算。 |
streamingTextureForceLoadAll | 强制串流纹理加载所有 Mipmap 级别。 |
streamingTextureLoadingCount | 当前正在加载 Mipmap 的串流纹理的数量。 |
streamingTexturePendingLoadCount | 要加载的未完成 Mipmap 的串流纹理数量。 |
targetTextureMemory | 应用 Mipmap 串流和预算并且在加载完成后由纹理使用的内存量。 |
totalTextureMemory | Mipmap 级别 0 的所有纹理将使用的内存总量。 |
hideFlags | 该对象应该隐藏、随场景一起保存还是由用户修改? |
name | 对象的名称。 |
anisoLevel | 纹理的各向异性过滤级别。 |
dimension | 纹理的维度(类型)(只读)。 |
filterMode | 纹理的过滤模式。 |
graphicsFormat | 返回纹理对象的 GraphicsFormat 格式或颜色格式。 |
height | 纹理的高度(以像素为单位)。(只读) |
imageContentsHash | 纹理的哈希值。 |
isReadable | 如果在导入纹理时选中了“Read/Write Enabled”复选框,则返回 true;否则返回 false。对于通过脚本创建的动态纹理,始终返回 true。有关更多信息,请参阅 TextureImporter.isReadable。 |
mipMapBias | The mipmap bias of the texture. |
mipmapCount | 该纹理中有多少个多级渐进纹理级别(只读)。 |
updateCount | 更新纹理时,此计数器会递增。 |
width | 纹理的宽度(以像素为单位)。(只读) |
wrapMode | 纹理坐标换行模式。 |
wrapModeU | 纹理 U 坐标换行模式。 |
wrapModeV | 纹理 V 坐标换行模式。 |
wrapModeW | Texture3D 的纹理 W 坐标换行模式。 |
GetInstanceID | 返回对象的实例 ID。 |
ToString | 返回对象的名称。 |
GetNativeTexturePtr | 获取指向纹理资源的原生(底层图形 API)指针。 |
IncrementUpdateCount | 递增更新计数器。 |
Destroy | 移除 GameObject、组件或资源。 |
DestroyImmediate | 立即销毁对象 /obj/。强烈建议您改用 Destroy。 |
DontDestroyOnLoad | 在加载新的 Scene 时,请勿销毁 Object。 |
FindObjectOfType | 返回第一个类型为 type 的已加载的激活对象。 |
FindObjectsOfType | Gets a list of all loaded objects of Type type. |
Instantiate | 克隆 original 对象并返回克隆对象。 |
SetGlobalAnisotropicFilteringLimits | 设置各向异性限制。 |
SetStreamingTextureMaterialDebugProperties | Uploads additional debug information to materials using textures set to stream mipmaps. |
bool | 该对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,判断它们是否引用同一个对象。 |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.