# Texture2DArray

> Create a new texture array.

## Definition

* **Type:** Constructor
* **Namespace:** [UnityEngine](/engine/6000.6/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## Texture2DArray(int, int, int, GraphicsFormat, TextureCreationFlags)

Create a new texture array.

```csharp
public Texture2DArray(int width, int height, int depth, GraphicsFormat format, TextureCreationFlags flags)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Width of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Height of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements in the texture array.**** (\[GraphicsFormat]\(/engine/6000.6/script-reference/unityengine/experimental/rendering/graphicsformat)): **** (TextureCreationFlags):&#x20;

### Remarks

Enable `createUninitialized` to make the texture reference uninitialized data (both on the CPU and GPU). When overriding all texels, this can lead to improved performance and reduced memory usage during construction. Note that sampling an uninitialized texture gives unpredictable values.

Usually you will want to set the colors of the texture after creating it. Use [Texture2DArray.SetPixels](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixels32](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels32.md) or [Graphics.CopyTexture](/engine/6000.6/script-reference/unityengine/graphics/copytexture.md) functions for that.

Note that this class does not support Texture2DArray creation with a Crunch compression [TextureFormat](/engine/6000.6/script-reference/unityengine/textureformat.md).

When you enable mipmap limits with a `mipmapLimitDescriptor`, a readable CPU copy is required for the texture to reupload when quality settings change. If the texture is made nonreadable (see [Texture2DArray.Apply](/engine/6000.6/script-reference/unityengine/texture2darray/apply.md)), the uploaded resolution will no longer adapt to the active quality level.

## Texture2DArray(int, int, int, TextureFormat, int, bool, bool, MipmapLimitDescriptor)

Create a new texture array.

```csharp
public Texture2DArray(int width, int height, int depth, TextureFormat textureFormat, int mipCount, bool linear, bool createUninitialized, MipmapLimitDescriptor mipmapLimitDescriptor)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Width of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Height of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements in the texture array.**** (\[TextureFormat]\(/engine/6000.6/script-reference/unityengine/textureformat)): Format of the texture.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Amount of mips to allocate for the texture array.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Does the texture contain non-color data (i.e. don't do any color space conversions when sampling)? Default is false.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Use this flag to create the texture with uninitialized data. When overriding all texels anyway, this can lead to improved performance and reduced memory usage.**** (\[MipmapLimitDescriptor]\(/engine/6000.6/script-reference/unityengine/mipmaplimitdescriptor)): Determines whether the texture uses a mipmap limit, and which mipmap limit to use. See [MipmapLimitDescriptor](/engine/6000.6/script-reference/unityengine/mipmaplimitdescriptor.md)

### Remarks

Enable `createUninitialized` to make the texture reference uninitialized data (both on the CPU and GPU). When overriding all texels, this can lead to improved performance and reduced memory usage during construction. Note that sampling an uninitialized texture gives unpredictable values.

Usually you will want to set the colors of the texture after creating it. Use [Texture2DArray.SetPixels](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixels32](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels32.md) or [Graphics.CopyTexture](/engine/6000.6/script-reference/unityengine/graphics/copytexture.md) functions for that.

Note that this class does not support Texture2DArray creation with a Crunch compression [TextureFormat](/engine/6000.6/script-reference/unityengine/textureformat.md).

When you enable mipmap limits with a `mipmapLimitDescriptor`, a readable CPU copy is required for the texture to reupload when quality settings change. If the texture is made nonreadable (see [Texture2DArray.Apply](/engine/6000.6/script-reference/unityengine/texture2darray/apply.md)), the uploaded resolution will no longer adapt to the active quality level.

## Texture2DArray(int, int, int, TextureFormat, int, bool, bool)

Create a new texture array.

```csharp
public Texture2DArray(int width, int height, int depth, TextureFormat textureFormat, int mipCount, bool linear, bool createUninitialized)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Width of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Height of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements in the texture array.**** (\[TextureFormat]\(/engine/6000.6/script-reference/unityengine/textureformat)): Format of the texture.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Amount of mips to allocate for the texture array.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Does the texture contain non-color data (i.e. don't do any color space conversions when sampling)? Default is false.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Use this flag to create the texture with uninitialized data. When overriding all texels anyway, this can lead to improved performance and reduced memory usage.

### Remarks

Enable `createUninitialized` to make the texture reference uninitialized data (both on the CPU and GPU). When overriding all texels, this can lead to improved performance and reduced memory usage during construction. Note that sampling an uninitialized texture gives unpredictable values.

Usually you will want to set the colors of the texture after creating it. Use [Texture2DArray.SetPixels](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixels32](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels32.md) or [Graphics.CopyTexture](/engine/6000.6/script-reference/unityengine/graphics/copytexture.md) functions for that.

Note that this class does not support Texture2DArray creation with a Crunch compression [TextureFormat](/engine/6000.6/script-reference/unityengine/textureformat.md).

When you enable mipmap limits with a `mipmapLimitDescriptor`, a readable CPU copy is required for the texture to reupload when quality settings change. If the texture is made nonreadable (see [Texture2DArray.Apply](/engine/6000.6/script-reference/unityengine/texture2darray/apply.md)), the uploaded resolution will no longer adapt to the active quality level.

## Texture2DArray(int, int, int, TextureFormat, int, bool)

Create a new texture array.

```csharp
public Texture2DArray(int width, int height, int depth, TextureFormat textureFormat, int mipCount, bool linear)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Width of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Height of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements in the texture array.**** (\[TextureFormat]\(/engine/6000.6/script-reference/unityengine/textureformat)): Format of the texture.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Amount of mips to allocate for the texture array.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Does the texture contain non-color data (i.e. don't do any color space conversions when sampling)? Default is false.

### Remarks

Enable `createUninitialized` to make the texture reference uninitialized data (both on the CPU and GPU). When overriding all texels, this can lead to improved performance and reduced memory usage during construction. Note that sampling an uninitialized texture gives unpredictable values.

Usually you will want to set the colors of the texture after creating it. Use [Texture2DArray.SetPixels](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixels32](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels32.md) or [Graphics.CopyTexture](/engine/6000.6/script-reference/unityengine/graphics/copytexture.md) functions for that.

Note that this class does not support Texture2DArray creation with a Crunch compression [TextureFormat](/engine/6000.6/script-reference/unityengine/textureformat.md).

When you enable mipmap limits with a `mipmapLimitDescriptor`, a readable CPU copy is required for the texture to reupload when quality settings change. If the texture is made nonreadable (see [Texture2DArray.Apply](/engine/6000.6/script-reference/unityengine/texture2darray/apply.md)), the uploaded resolution will no longer adapt to the active quality level.

## Texture2DArray(int, int, int, TextureFormat, bool, bool, bool)

Create a new texture array.

```csharp
public Texture2DArray(int width, int height, int depth, TextureFormat textureFormat, bool mipChain, bool linear, bool createUninitialized)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Width of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Height of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements in the texture array.**** (\[TextureFormat]\(/engine/6000.6/script-reference/unityengine/textureformat)): Format of the texture.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Should mipmaps be created?**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Does the texture contain non-color data (i.e. don't do any color space conversions when sampling)? Default is false.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Use this flag to create the texture with uninitialized data. When overriding all texels anyway, this can lead to improved performance and reduced memory usage.

### Remarks

Enable `createUninitialized` to make the texture reference uninitialized data (both on the CPU and GPU). When overriding all texels, this can lead to improved performance and reduced memory usage during construction. Note that sampling an uninitialized texture gives unpredictable values.

Usually you will want to set the colors of the texture after creating it. Use [Texture2DArray.SetPixels](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixels32](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels32.md) or [Graphics.CopyTexture](/engine/6000.6/script-reference/unityengine/graphics/copytexture.md) functions for that.

Note that this class does not support Texture2DArray creation with a Crunch compression [TextureFormat](/engine/6000.6/script-reference/unityengine/textureformat.md).

When you enable mipmap limits with a `mipmapLimitDescriptor`, a readable CPU copy is required for the texture to reupload when quality settings change. If the texture is made nonreadable (see [Texture2DArray.Apply](/engine/6000.6/script-reference/unityengine/texture2darray/apply.md)), the uploaded resolution will no longer adapt to the active quality level.

## Texture2DArray(int, int, int, TextureFormat, bool, bool)

Create a new texture array.

```csharp
public Texture2DArray(int width, int height, int depth, TextureFormat textureFormat, bool mipChain, bool linear)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Width of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Height of texture array in pixels.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements in the texture array.**** (\[TextureFormat]\(/engine/6000.6/script-reference/unityengine/textureformat)): Format of the texture.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Should mipmaps be created?**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Does the texture contain non-color data (i.e. don't do any color space conversions when sampling)? Default is false.

### Remarks

Enable `createUninitialized` to make the texture reference uninitialized data (both on the CPU and GPU). When overriding all texels, this can lead to improved performance and reduced memory usage during construction. Note that sampling an uninitialized texture gives unpredictable values.

Usually you will want to set the colors of the texture after creating it. Use [Texture2DArray.SetPixels](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixels32](/engine/6000.6/script-reference/unityengine/texture2darray/setpixels32.md) or [Graphics.CopyTexture](/engine/6000.6/script-reference/unityengine/graphics/copytexture.md) functions for that.

Note that this class does not support Texture2DArray creation with a Crunch compression [TextureFormat](/engine/6000.6/script-reference/unityengine/textureformat.md).

When you enable mipmap limits with a `mipmapLimitDescriptor`, a readable CPU copy is required for the texture to reupload when quality settings change. If the texture is made nonreadable (see [Texture2DArray.Apply](/engine/6000.6/script-reference/unityengine/texture2darray/apply.md)), the uploaded resolution will no longer adapt to the active quality level.
