Понедельник, 25 Ноября 2024, 07:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
В каком формате дешевле сохранять данные цвета
alexsilentДата: Воскресенье, 20 Февраля 2022, 17:36 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Хочу сохранить данные цвета через стандартный PlayerPrefs юнити (в реестре):
Я слышал, что в реестре нельзя сохранять больше мегабайта.

Какой формат меньше занимает памяти для цвета?
1) Формат Integer - по формуле: Red*1000000 + Green * 1000 + Blue
например красный будет 255000000 (вроде это число ещё помещается в int)
а синий будет всего равен 255
2) Формат String (псевдо HEX), то есть сохраняю в обычном тексте как будто 16-ричные значения:
например красный будет равен "FF0000", а синий будет равен "0000FF"

a) По идее вроде Integer должен меньше места занимать, но я точно не уверен.
b) А если я захочу сохранить ещё и альфу, тогда для альфы нужно делать ещё большее число
и не уверен, что оно поместится в Integer
(Например: белый цвет будет равен 255255255255, когда в формате String это всего будет 8 символов "FFFFFFFF")

Или может есть ещё какие-то альтернативы для сохранении цвета?!...
Ну кроме того варианта, где надо разделять каждый цвет на 3,4 переменных, это кажется ещё больше место занимает


Сообщение отредактировал alexsilent - Воскресенье, 20 Февраля 2022, 17:57
drcrackДата: Воскресенье, 20 Февраля 2022, 20:05 | Сообщение # 2
старожил
Сейчас нет на сайте
integer в формате
Код
int packedColor = (A << 24) | (B << 16) | (G << 8) | R;

(предполагая что цвета и альфа это целые числа 0-255
для чтения:
Код

public Color32 ToColor(int HexVal)
{
     byte A = (byte)((HexVal >> 24) & 0xFF));
     byte B = (byte)((HexVal >> 16) & 0xFF);
     byte G = (byte)((HexVal >> 8) & 0xFF);
     byte R = (byte)((HexVal) & 0xFF);
     return new Color32(R, G, B, A);
}


Сообщение отредактировал drcrack - Воскресенье, 20 Февраля 2022, 20:07
alexsilentДата: Понедельник, 21 Февраля 2022, 00:42 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
drcrack, Спасибо! Очень полезная инфа.

Добавлено (21 Февраля 2022, 00:44)
---------------------------------------------

Цитата drcrack ()
предполагая что цвета и альфа это целые числа 0-255


Я по привычке делал с 255, забывая что в юнити от 0f до 1f, но в принципе, мне норм любой вариант.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг