首页 > 解决方案 > 从类型为 multiple 的纹理调整加载的精灵大小(宽度和高度不匹配)

问题描述

你好我有一个问题,我不明白为什么会这样,问题是:

我有一个多重类型的纹理,我加载了我所有的卡片精灵

质地: 纹理图像

如您所见,每张卡片都有自己的 Sprite 属性,这些属性定义了图像的限制,在此示例中,您将看到宽度为 402,高度为 563。

但是由于某种原因,当我使用加载精灵 Sprite[] sprites = Resources.LoadAll<Sprite>(sheetName)然后访问特定精灵时,例如(sprites[0]

如果我做

sprites[0].rect.width
sprites[0].rect.height

返回的值与图像上之前指定的值不同,我需要这些值使用此公式将精灵宽度缩放为特定的宽度和高度

 var factorX = (CARD_WIDTH / sprites[0].rect.width );
 var factorY = (CARD_HEIGHT / sprites[0].rect.height ) ;
 transform.localScale = new Vector2(factorX, factorY);

因为宽度和高度的值不同,所以我得到的因素是错误的。

另外,我刚刚注意到我得到的值与统一编辑器在这里向我显示的值相同 图片

我的问题是:

为什么我得到不同的宽度和高度值?

标签: c#unity3d

解决方案


这两个比率大致相同,它会显示缩略图的mip贴图的分辨率而不是原始纹理吗?您可以尝试在纹理导入设置中关闭 Generate Mipmaps(如果它已打开)


推荐阅读