Вы не предоставили никакого кода, поэтому трудно сказать, что на самом деле происходит.Только из описания это звучит как проблема с мипмапами, которые не были обновлены.Мип-карты используются для обеспечения разных разрешений одного и того же изображения, поэтому можно использовать версию соответствующего размера в зависимости от размера, на котором фактически отображается текстура.
При использовании Texture2D.SetPixels()
вы всегда изменяетеодин конкретный уровень mipmap, то есть одна версия изображения определенного размера.По умолчанию это уровень 0, базовый уровень mipmap, который содержит полноразмерную версию.
Из описания это звучит как после изменения базового уровня mipmap, вы назвали Texture2D.Apply()
саргумент updateMipmaps
установлен в false
, как показано в примере, показанном в Texture2D.SetPixels ().Это предотвращает обновление других уровней текстуры текстуры, поэтому изменения вносятся только в полноразмерную версию, а остальные - нет.Когда текстура теперь визуализируется в меньшем масштабе (т. Е. По текущему уровню масштабирования, уменьшению или уменьшению), изменение не отображается, так как соответствующий меньший mipmap никогда не обновлялся.
Документация вTexture2D.Apply()
немного вводит в заблуждение:
Если updateMipmaps
имеет значение true, уровни mipmap также пересчитываются, используя базовый уровень в качестве источника.Обычно вы хотите использовать true во всех случаях, кроме случаев, когда вы сами изменили уровни mip, используя SetPixels
.
Это означает, что вы не хотите updateMipmaps
, если вы использовали SetPixels
, но на самом деле это означает только то, что вы не хотите этого, если вы изменили все отдельные уровни mipmap, используя SetPixels
(как это делает пример в SetPixels
).Если вы изменили только базовый уровень, то вы действительно хотите использовать updateMipmaps = true
, чтобы другие уровни mipmap обновлялись автоматически с измененной базы.