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/

2015年5月20日 星期三

[Unity] Unity 5的Profiler小問題

用Unity 5要profile Android機器時發現無法取得狀態,但是同一台PC上的Unity 4上對同一台Android機器卻可以。後來在只開著Unity 5的狀況下用command再度連結一次Android機器後就可以正常看到profiler資訊了:

adb forward tcp:54999 localabstract:Unity-Bundle Identifier
 
Bundle Identifier 是指com.aaa.bbb那個

  原因不明,不過就是可以用了(攤手)。


參考:http://windsky24.blogspot.tw/2014/04/unity-android-unityprofier.html