Version: 2021.3
  • C#


Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.




public static bool ConvertTexture(Texture src, Texture dst);


public static bool ConvertTexture(Texture src, int srcElement, Texture dst, int dstElement);


src Source texture.
dst Destination texture.
srcElement Source element (e.g. cubemap face). Set this to 0 for 2D source textures.
dstElement Destination element (e.g. cubemap face or texture array element).


bool True if the call succeeded.


This function provides an efficient way to convert between textures of different formats and dimensions. The destination texture format should be uncompressed and correspond to a supported RenderTextureFormat.

This function operates only on GPU-side data. Use Texture2D.ReadPixels to get the pixels from GPU to CPU.

This function currently supports 2D and cubemap textures as the source, and supports 2D, cubemap, 2D array and cubemap array textures as the destination. This function does not support conversion from cubemap to Texture2D. It also does not support RenderTexures. Instead, use Graphics.Blit.

Due to API limitations, this function is not supported on DX9 or Mac+OpenGL. Some platforms don't support every type of texture conversion. This is because this function internally depends on functionality from Graphics.CopyTexture. To check if your target platform supports the type of texture conversion you are using, use SystemInfo.copyTextureSupport. For more information on compatibility, see Graphics.CopyTexture and CopyTextureSupport.

See Also: CopyTextureSupport.