Cubemap.SetPixels
Declaration
public void SetPixels(Color[] colors, CubemapFace face, int miplevel);public void SetPixels(Color[] colors, CubemapFace face);Параметры
| Параметр | Описание |
|---|---|
| цвета | Массив используемых цветов пикселей. Это изображение 2D, сплоченное до 1D массива. |
| мипуровень | Уровень mipmap для записи colors. Диапазон 0 до текстуры Texture.mipmapCount. Значение по умолчанию 0. |
| лицо | CubemapFace для записи colors. |
Описание
Задает цвета пикселей для всего уровня mipmap лица.
Этот метод устанавливает пиксельные данные для текстуры в памяти CPU. Texture.isReadable должно быть true, и вы должны вызвать Apply после SetPixels для загрузки измененных пикселей в GPU.
Apply является дорогостоящей операцией, потому что она копирует все пиксели текстуры, даже если вы изменили только некоторые пиксели, так что измените как можно больше пикселей, прежде чем вызовёте ее.colors должен содержать пиксели ряд за рядом, начиная с нижнего левого угла текстуры лица. Размер массива должен быть равен ширине × высоте уровня mipmap.
Единый призыв к SetPixels обычно быстрее, чем несколько вызовов SetPixel, особенно для больших текстур.SetPixels может быть медленнее, чем некоторые другие методы текстуры, потому что он преобразует Color структуру в формат, используемый текстурой. Чтобы задать данные пикселей быстрее, используйте SetPixelData вместо этого.
Вы можете использовать SetPixels со следующим текстом: текстурные форматы:
- Alpha8
- ARGB32
- ARGB4444
- BGRA32
- R16
- R16_SIGNED
- R8
- R8_SIGNED
- RFloat
- RG16
- RG16_SIGNED
- RG32
- RG32_SIGNED
- RGB24
- RGB24_SIGNED
- RGB48
- RGB48_SIGNED
- RGB565
- RGB9e5Float
- RGBA32
- RGBA32_SIGNED
- RGBA4444
- RGBA64
- RGBA64_SIGNED
- RGBAFloat
- RGBAHalf
- RGFloat
- RGHalf
- RHalf
Для всех других форматов, SetPixels не срабатывает. Unity вызывает исключение, когда SetPixels не срабатывает.
Дополнительные ресурсы: GetPixels, SetPixelData, Apply, mipmapCount.
// copy a texture to the +X face of a cubemap
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Cubemap c; public Texture2D t; private Color[] CubeMapColors;
void Example() { CubeMapColors = t.GetPixels(); c.SetPixels(CubeMapColors, CubemapFace.PositiveX); c.Apply(); } }