2015年5月23日 星期六

[Unity 5] 動態建立Sprite錯誤

在Unity 4時我有一段code是讀取貼圖建立Sprite:

m_bannerSprite.sprite = Sprite.Create(m_bannerTexnew Rect(0,0,64064), 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_bannerTexnew Rect(0,0m_bannerTex.widthm_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/

沒有留言:

張貼留言