[英]For Scale with screen size for canvas in unity3d, my sprites in Ui are pixelated when used for larger screens
[英]Physical size of imported sprites in Unity3d
我當時正在Unity3d中為iOS開發一款游戲,在構建完游戲並將其發送到設備后,我注意到已安裝的應用程序的實際大小非常大(所謂的“大”是指超過2GB,大聲笑)。
我在流浪,為什么呢? 因此,我創建了測試項目,創建了場景,並向其中添加了一張大小為2048x2048的圖像。 所以我得到了與此文件的項目:
使用以下設置導入了MySprite:
而且,我什至沒有忘記取消選中覆蓋iOS的此設置。 因此,MySprite在未壓縮狀態下的大小為16 MB。 很好。 沒有質量損失,每個像素32位。
然后,我創建了Xcode項目。 並在數據文件夾文件sharedassets0.assets中找到了它 ,它的大小為 16.1 MB! 我進行了一些研究,發現由於MySprite,此文件很大。 所以...我很困惑。 一點點。 然后,我從這個Xcode項目中創建了ipa文件,並解壓縮了cool-game.ipa文件,然后再次找到了可共享 ta-da-da 16.1 MB的sharedassets0.assets !
我不喜歡這種行為。 為什么MySprite的物理大小為16 MB? 我了解,在內存處於未壓縮狀態時,無論如何將占用16 MB。 但是我想在設備上壓縮文件並在運行時將其解壓縮。 因為我不喜歡大小= 16 MB * 100的應用程序:)
因此,是否可以要求Unity3d在構建時壓縮圖像?
PS我正在使用OS X 10.9.3,Unity3d v.4.5。 我有Unity3d Pro,但沒有iOS Pro。
我找到了下一個解決方案。
我將所有需要物理處理的圖像都.bytes
擴展名為.bytes
Resources文件夾中。 然后我通過加載它們
var binImage = Resources.Load<TextAsset>(imagePathInResourcesFolder);
myTexture2D.LoadImage(binImage.bytes);
如果需要Texture2D
Sprite,則可以始終使用Sprite.Create()
函數。
這對我有好處,因為我可以輕松加載圖像並將其卸載以釋放內存使用量。 但是這種解決方案有很大的缺點。 沒有任何Unity3d擴展,我們將失去常規的Unity工作流程。 真傷心 但這只是我發現有效的解決方案。
PS實際上,您可以使用WWW類加載圖像。 但是目前,我更喜歡使用Resources。
PPS記住,Unity3d從Resources文件夾到構建都包含了它可以使用的所有功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.