SetPixelData
Sets the raw data of an entire mipmap level of a face directly in CPU memory.
Read time 3 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
SetPixelData<T>(`<>[], int, CubemapFace, int, int)
Sets the raw data of an entire mipmap level of a face directly in CPU memory.
public void SetPixelData<T>(T[] data, int mipLevel, CubemapFace face, int element, int sourceDataStartIndex = 0)
Parameters
The array of data to use.
The mipmap level to write to. The range is through the texture's Texture.mipmapCount. The default value is .
00The CubemapFace to write to.
The array slice to write to.
The index in the source array to start copying from. The default value is .
0Remarks
This method sets pixel data for the texture in CPU memory. Texture.isReadable must be , and you must call CubemapArray.Apply after to upload the changed pixels to the GPU.
trueSetPixelDataSetPixelDataThe size of the array must be the width × height of the mipmap level of the face, and the data layout must match the texture format, otherwise fails. You can use for if you don't want to define a custom struct to match the texture format.
dataSetPixelDatabyteTUnity throws an exception when fails.
SetPixelDataExamples
using UnityEngine;public class ExampleScript : MonoBehaviour{ public CubemapArray texture; public void Start() { texture = new CubemapArray(2, 2, TextureFormat.RGB24, true); var data = new byte[] { // mip 0: 2x2 size 255, 0, 0, // red 0, 255, 0, // green 0, 0, 255, // blue 255, 255, 255, // white // mip 1: 1x1 size 255, 255, 0 // yellow }; texture.SetPixelData(data, 0, CubemapFace.PositiveX, 0, 0); texture.SetPixelData(data, 1, CubemapFace.PositiveX, 0, 12); texture.Apply(updateMipmaps: false); }}
SetPixelData<T>(NativeArray<T>, int, CubemapFace, int, int)
Sets the raw data of an entire mipmap level of a face directly in CPU memory.
public void SetPixelData<T>(NativeArray<T> data, int mipLevel, CubemapFace face, int element, int sourceDataStartIndex = 0) where T : struct
Parameters
The array of data to use.
The mipmap level to write to. The range is through the texture's Texture.mipmapCount. The default value is .
00The CubemapFace to write to.
The array slice to write to.
The index in the source array to start copying from. The default value is .
0Remarks
This method sets pixel data for the texture in CPU memory. Texture.isReadable must be , and you must call CubemapArray.Apply after to upload the changed pixels to the GPU.
trueSetPixelDataSetPixelDataThe size of the array must be the width × height of the mipmap level of the face, and the data layout must match the texture format, otherwise fails. You can use for if you don't want to define a custom struct to match the texture format.
dataSetPixelDatabyteTUnity throws an exception when fails.
SetPixelDataExamples
using UnityEngine;public class ExampleScript : MonoBehaviour{ public CubemapArray texture; public void Start() { texture = new CubemapArray(2, 2, TextureFormat.RGB24, true); var data = new byte[] { // mip 0: 2x2 size 255, 0, 0, // red 0, 255, 0, // green 0, 0, 255, // blue 255, 255, 255, // white // mip 1: 1x1 size 255, 255, 0 // yellow }; texture.SetPixelData(data, 0, CubemapFace.PositiveX, 0, 0); texture.SetPixelData(data, 1, CubemapFace.PositiveX, 0, 12); texture.Apply(updateMipmaps: false); }}