簡體   English   中英

Unity3d中導入的精靈的物理大小

[英]Physical size of imported sprites in Unity3d

我當時正在Unity3d中為iOS開發一款游戲,在構建完游戲並將其發送到設備后,我注意到已安裝的應用程序的實際大小非常大(所謂的“大”是指超過2GB,大聲笑)。

我在流浪,為什么呢? 因此,我創建了測試項目,創建了場景,並向其中添加了一張大小為2048x2048的圖像。 所以我得到了與此文件的項目:

  • MySprite的
  • MyScene

使用以下設置導入了MySprite:

  • 貼圖類型 :雪碧
  • 精靈模式 :單人
  • 像素至單位 :100
  • 過濾模式 :點
  • 最大大小 :2048
  • 格式 :真彩色

而且,我什至沒有忘記取消選中覆蓋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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM