在Unity 4時我有一段code是讀取貼圖建立Sprite:
m_bannerSprite.sprite = Sprite.Create(m_bannerTex, new Rect(0,0,640, 64), new Vector2(0.5f,0.5f), 1f); //m_bannerSprite 是 SpriteRenderer
但是同樣的code在Unity5會出現錯誤:
!hasError
UnityEngine.Sprite:Create(Texture2D, Rect, Vector2, Single)
去網路上查了一下發現
可能是因為建立Sprite時不是用Texture原來的解析度所導致的,將Rect的長寬改成Texture的原始解析度就可以成功建立了:
m_bannerSprite.sprite = Sprite.Create(m_bannerTex, new Rect(0,0, m_bannerTex.width, m_bannerTex.height), new Vector2(0.5f,0.5f), 1f/64f);
要改動Sprite輸入時的大小的話,可以在Sprite.Create()參數中加上pixelPerUnit的參數。
當初寫這功能時還沒有UGUI,所以是用Sprite來做banner功能,現在的話應該會用UGUI的Image來處理就是了。
http://forum.unity3d.com/threads/sprite-create-error-message-haserror.312885/
沒有留言:
張貼留言