Я создаю немного художественной программы / игры в Unity, однако мне нужно создать сборщик цвета для художников, которые строят вещи внутри него. Я использую систему пользовательского интерфейса NGUI, и я создал базовый спрайт с набором цветов, а также пользовательский цвет. < /p>
Тем не менее, фактически выбрать один из этих цветов точно не так легко.
Я сейчас делаю это так: < /p>
IEnumerator CaptureTempArea()
{
yield return new WaitForEndOfFrame();
tex = new Texture2D(Screen.width, Screen.height);
tex.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
tex.Apply();
Vector2 pos = UICamera.lastEventPosition;
int x = (int)pos.x;
int y = (int)pos.y;
Color color = tex.GetPixel(x, y);
Debug.Log(ColorToHex(color));
Debug.Log(tex.GetRawTextureData().Length / 1000);
Destroy(tex);
tex = null;
}
< /code>
Тем не менее, должен быть лучший способ захватить -Just - конкретную область. Однако это точно получает цвета. Но он также генерирует изображение - даже временное - это размером от 2 до 8 МБ, прежде чем оно будет очищено из буфера. Учитывая конкретную систему пользовательского интерфейса, есть ли лучший способ создать сборщик цвета или тот, который будет использовать меньше памяти?
Подробнее здесь: https://stackoverflow.com/questions/391 ... p-and-ngui