Unity 6.3
0 онлайн 60 гостей 3 в системе
Вход

Cubemap.SetPixel

Declaration

public void SetPixel(CubemapFace face, int x, int y, Color color, int mip = 0);

Параметры

Параметр Описание
x Координаты x пикселя, который нужно установить. Диапазон — от 0 до (ширина текстуры — 1).
y Координаты y пикселя для установки. Диапазон — от 0 до (высота текстуры — 1).
цвет Цвет для установки.
мип Уровень mipmap для записи. Диапазон 0 через текстуру Texture.mipmapCount. Значение по умолчанию 0.
лицо CubemapFace для записи.

Описание

Задает цвет пикселей в координатах (x,y).

Этот метод устанавливает пиксельные данные для текстуры в памяти CPU. Texture.isReadable должно быть true, и вы должны вызвать Apply после SetPixel для загрузки измененных пикселей в GPU.

Apply является дорогостоящей операцией, потому что она копирует все пиксели текстуры, даже если вы изменили только некоторые пиксели, так что измените как можно больше пикселей, прежде чем вызовёте ее.

SetPixel может быть медленнее, чем некоторые другие методы текстуры, потому что он преобразует Color структуру в формат, используемый текстурой. Чтобы задать данные пикселей быстрее, используйте SetPixelData вместо этого.

Если координата пикселя находится за пределами размеров текстуры, Unity зажимает или повторяет ее, в зависимости от размеров текстуры. TextureWrapMode.

Если вам нужно получить большой блок пикселей, это может быть быстрее использовать SetPixels.

Вы можете использовать SetPixel со следующим текстом: текстурные форматы:

  • 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

Для всех других форматов, Unity игнорирует SetPixel.

Дополнительные ресурсы: SetPixels, SetPixelData, GetPixel, Apply.

using UnityEngine;

public class Example : MonoBehaviour { public Cubemap cubeMap;

void Start() { // Set the pixel at (0,0) of the +X face red. cubeMap.SetPixel(CubemapFace.PositiveX, 0, 0, Color.red); cubeMap.Apply(); // Apply the stuff done to the Cubemap. } }