我做了一个小的png(100x30)并在Unity中添加了它作为纹理。我还将它添加到脚本中,以便我可以轮询它,但是如果我打印出它的宽度和高度,它现在表示它的128x32。发生了什么?
我试图调整相机,但它似乎与它没有任何关系。任何线索?
答案 0 :(得分:2)
出于性能原因,通常纹理在两侧都缩放到2的幂。
例如,如果GPU可以假设您正在使用POT纹理,那么乘法和除法会更快。即使 mipmaps 生成过程依赖于此,因为除以2也不会产生余数。
旧GPU(我不确切地知道,但现在甚至可能是几个移动GPU)需要严格的POT纹理。
默认情况下,Unity会尝试将纹理缩放到2的幂。您可以禁用或调整将texture import settings
切换为"Advanced"
的设置。
有关详细信息,请查看doc。
请注意,通常只需要GUI的NPOT纹理,您需要在屏幕上精确控制分辨率,并且不使用mipmap。对于3D场景中的所有内容,2的功率表现更好。