转自:http://www.360doc.com/content/14/0411/11/12282510_367982834.shtml
Unity3D中Texture2D纹理类型绘制代码如下:
var img : Texture2D;
function OnGUI()
{
GUI.DrawTexture( Rect( left, top, width, height ), img );
}
绘制后会发现图像明显发虚,其实就是纹理在被Unity3D载入是自动缩放成了2的n次方大小(power of 2)。在Project面板中找到原始文件(测试纹理大小为 40×100)。
结果Unity3D将图片大小自行缩放。导致了纹理失真。解决方法如下:
首先将Texture Type选择为Advaced,在面板内弹出新的选项。将紧挨着他下面的Non power of 2的选项设置为None,一定要选择下面的Apply,接受修改,否则没有效果,这时可以看到下面的预览框内的纹理大小为实际的物理文件尺寸。
重新运行程序,便可以看到正常的显示效果了。