2015-11-09 13 views
5

Mam aplikację, która jest wykonana z jednością 2d. Eksportując go do Androida waży 100 MB. Eksport do iOS waży 1,2 GB (ipa to 104 MB), ale wewnątrz iTunes waży 1,2 GB, czyli za dużo.Unity iOS App Rozmiar waży 1,2 GB (rzeczywisty rozmiar) (Android 100MB)

Próbowaliśmy zmniejszyć rozmiar tekstury, ale obrazy są bardzo pikselowane na urządzeniu.

Wszelkie pomysły na rozwiązanie tego problemu?

Oto co .ipa nieskompresowany pokazuje, co jest coraz wszelkie MB:

sharedassets4.assets (tylko, że plik, dostaje 342 MB)

+0

Czy kompresujesz swoje oczka? Również usuń kod bitowy. Kolejną rzeczą, którą uznałem za pomocną, jest spłaszczenie twoich tekstur i usunięcie warstw. Zmienia także zindeksowaną liczbę kolorów na mniejszą. Dla 1024x1024 może osiągnąć 170KB, jeśli go poprawisz. Usuń również normalne mapy i zmień swoje shadery. Nie będzie wyglądać tak ziarnisto, ale zmniejszy rozmiar. Możesz także odciążyć tekstury na serwer zasobów. – ApolloSoftware

Odpowiedz

0

Sprawdź opcje importowania tekstur. Możesz mieć ustawione inne opcje dla importu Androida i importowania systemu iOS.

Importowanie iOS to zwykle PVRTC, który preferuje tekstury o sile dwóch i kwadratu (256x256, 512x512 itd.).

Wygląda na to, że system iOS ma ustawioną opcję nieskompresowanego formatu.

+0

dzięki za odpowiedź. najwyraźniej obrazy nie mają potęgi 2 ... i nie są kwadratowe ... czy myślisz, że jest tam coś do zrobienia? naprawić to? –

+1

Nie mogę komentować bez dodatkowych informacji o obrazach, projekcie i ustawieniach. – Almo

2

iTunes pokazuje rozmiar instalacji, więc jeśli rozpakujesz plik ipa, otrzymasz te 1,2 GB. Rozmiar instalacji na Androida może być tak duży. Sprawdziłeś to?

Zwykle dzieje się tak, gdy skompresowałeś tekst w trybie True Color lub 16 bitów, a kompresja zip działa naprawdę dobrze, tzn. Na teksturach, które mają dużo pikseli o tych samych kolorach.

Możliwe rozwiązania

1) Jeśli tekstur nie wymaga przejrzystości, można przełączyć do skompresowanych tekstur (PVRTC na iOS i Androida na ETC). Ale jeśli wymaga przejrzystości, nie należy przełączać się na skompresowane, ponieważ przezroczysty PVRTC może wyglądać bardzo brzydko i ETC nie obsługuje alfa.

2) Nie wiem, czy jest to możliwe w projekcie, ale można spróbować zmniejszyć ilość tekstury za pomocą odcień lub ich cięcie.

UPDATE 1

Obecnie ma podobną sytuację i jak się okazuje.

-------------------------------------------- 
| Platform    Android iOS  | 
|--------------------------------------------| 
| APK/IPA     380MB  400 MB | 
| unzipped APK/IPA  1.19 GB 1.13 GB | 
| install size on device 380MB  1.15 GB | 
-------------------------------------------- 

Różnica polega na tym, że iOS rozpina plik IPA całkowicie na instalację i
Android wbrew czyta podczas wykonywania bezpośrednio z APK, więc można argumentować, że tak naprawdę nie jest zainstalowany, ale to zdecydowanie inny rodzaj instalacji.

+0

dzięki za odpowiedź. . tak, czekam na androida to tylko 100mb ... 100% pewności !! .... 1. tak, obrazy wymagają przezroczystości. 2. chciałbym spróbować z odcieniem –

+0

@JeanLuc ** RE ** _ "Ale jeśli wymaga przejrzystości, nie należy przełączać się na skompresowane, ponieważ przezroczyste PVRTC może wyglądać bardzo brzydko" _ To może raczej zależeć od tego, co jest ukryte w obszarach przezroczystych twojej tekstury. Widziałem już kilka przypadków, w których dane dotyczące kolorów w obszarach alpha = 0 są "zupełnymi śmieciami", ale sprężarka musi jeszcze próbować je reprezentować, ponieważ nie wie, w jaki sposób dane te zostaną wykorzystane, np. jaki tryb mieszania, a nawet jeśli w ogóle jest alfą! W przypadku PVRTC1, gdy A = 0, staraj się, aby dane kolorów były jak najbardziej zbliżone do pobliskiej okolicy. –

+0

@SimonF: to dobra rada, dziękuję! Będę o tym pamiętać. – JeanLuc

0

Czy kompresujesz swoje oczka? Również usuń kod bitowy. Kolejną rzeczą, którą uznałem za pomocną, jest spłaszczenie twoich tekstur i usunięcie warstw. Zmienia także zindeksowaną liczbę kolorów na mniejszą. Dla 1024x1024 może osiągnąć 170KB, jeśli go poprawisz.

Usuń również normalne mapy i zmień shadery. Nie będzie wyglądać tak ziarnisto, ale zmniejszy rozmiar. Możesz także odciążyć tekstury na serwer zasobów i uzyskać tekstury w środowisku wykonawczym, a nie wstępne ładowanie ich w pakietach.

Powiązane problemy