bug问题:在某些情况下UISprite不显示,或显示的位置不符合localPosition数值Bug.
如: 在UISprite.spriteName不变,对UISprite.gameObject.localPosition或UISprite.gameObject.SetActive设置新值时无效或显示不正确.
解决方案: 方案1、在设置新值时,将UISprite.spriteName更换一次,再还原.
String s = UISprite.spriteName;
UISprite.spriteName="";
UISprite.transform.localPosition = new Vector3(*,*,*);
UISprite.gameObject.SetActive(true/false);
UISprite.spriteName=s;
方案 2、在UISprite类中增加函数,提供修改新属性后,调用一次此函.
public void ChangedSprite()
{
mSprite = null;
mChanged = true;
mSpriteSet = false;
}

本文针对Unity中UISprite在特定情况下出现不显示或位置偏移的问题提供了两种解决方案:通过临时更改spriteName触发刷新机制,或者在UISprite类中新增ChangedSprite()方法以更新其内部状态。
1万+

被折叠的 条评论
为什么被折叠?



