我希望以宽高比显示UI徽标图像,但其大小适合其容器。已经是所有徽标图像按照宽高比,但很少与需求相比太大或太小。
以下是我正在使用的代码:
private void ShowGamePlayLogoViewed ()
{
for (int i = 0; i < DataCollection.companyDetailsList.Count; i++) {
Company company = DataCollection.companyDetailsList [i];
if (company.ViewedCounter > 0) {
GameObject companyItemObj = Instantiate (companyItemPref, gridViewContainer) as GameObject;
CompanyItem companyItem = companyItemObj.GetComponent<CompanyItem> ();
companyItem.companyId = company.CompanyId;
companyItem.UpdateCompanyLogo (company.CompanyLogo);
companyItem.UpdateCompanyName (company.CompanyName);
}
}
}
public void UpdateCompanyLogo (Sprite logoSprite)
{
logoImage.sprite = logoSprite;
logoImage.SetNativeSize ();
}
根据您的意见,徽标与容器重叠。我也希望在宽高比上也能在各自的容器中正确显示它们。
请给我一些帮助,以便我可以像这样设置属性。让我更清楚一点,从Web服务器加载所有徽标,它们都是动态的,基于它将出现在移动屏幕上的服务器数据。
答案 0 :(得分:0)
我通过Unity论坛找到了解决方案,我想感谢@Hosnkobf的回复。
以下是对我有用的确切答复:
调整单位内的图像游戏对象,使其具有您正在寻找的高度。还可以调整锚点,使其以不同的分辨率正确缩放。 添加&#34; AspectRatioFitter&#34;组件到对象。制作它&#34;高度控制宽度&#34;。 而不是logoImage.SetNativeSize();执行以下操作:
float aspectRatio = logoSprite.rect.width / logoSprite.rect.height;
var fitter = logoImage.GetComponent<UnityEngine.UI.AspectRatioFitter>();
fitter.aspectRatio = aspectRatio;
我希望这对其他成员有用:)