Как импортировать текстуру повторно, или как получить доступ к texture.GetPixel()?
Проблема с доступом к texture.GetPixel, нужно поменять read/write поле на true - это я понимаю, но дело вот в чём.
Я пытался нарезать картинку на равные части, то есть сделать multiple текстуру через TextureImporter. У меня вышло, но я захотел не включать пустые места, то есть если в данном фрагменте этой текстуры была прозрачность 100%, то есть 0, то она пропускалась. И вот, проблема с доступом в текстуре, ведь нужно свойство readable, но я не могу получить его, пока не импортировал эту текстуру, а после импорта повторно редактировать, чтобы установить фрагменты через textureImporter.spritesheet = metadata.ToArray();
не выходит.
Подскажите, пожалуйста, удобное и красивое решение. Я могу сделать это, но это будет костыль, а хочется знать как это делается правильно и красиво.
Код импортирует ресурс текстуры в виде листа спрайтов с указанными метаданными кадра. Для свойства isReadable будет установлено значение true, можно использовать Texture2D.GetPixel() для доступа к пиксельным данным текстуры.
Чтобы код еще и работал при запуске игры нужно получить доступ к пиксельным данным текстуры во время выполнения, нужно будет установить свойство Read/Write Enabled в настройках импорта текстуры в редакторе Unity перед импортом текстуры.
Дело в том, что я импортирую текстуру извне юнити и мне нужен доступ к её чтению прямо во время импорта, я пытался импортировать её без разделения с включённым чтением, но почему-то когда я пытался получить к её импорту доступ снова, изменения не применялись. Я делал это в одном скрипте с разницей в пару строк. В чём может быть проблема?
Jut_Rut, AssetDatabase.ImportAsset создаст новый экземпляр текстуры, который можно изменить и сохранить
AssetDatabase.CreateAsset для создания нового актива из данных текстуры, что позволит вносить в него изменения и сохранять их