Unitate - reducerea manuală a dimensiunii fișierului de asamblare

Jurnalul vă ajută să identificați ansamblurile pe care ați putea dori să le eliminați sau să le optimizați, dar trebuie să aveți în vedere următoarele înainte de a începe:







Unitatea codifică activele importate în propriile formate interne, deci alegerea formatului inițial de active nu contează. De exemplu, dacă proiectul dvs. are o textură Photoshop cu mai multe straturi, acestea vor fi îmbinate și textura însăși va fi comprimată înainte de asamblarea proiectului. Exportarea texturilor ca PNG nu va afecta dimensiunea ansamblului în niciun fel, deci trebuie să păstrați formatele care vă sunt cele mai convenabile atunci când vă dezvoltați.

Unitatea filtrează majoritatea ansamblurilor neutilizate în timpul construcției, astfel încât să nu câștigați nimic prin ștergerea manuală a activelor din proiect. Activele care nu sunt supuse screening-ului sunt scripturi (ocupă foarte puțin spațiu în orice caz) și totul în dosarul Resurse (deoarece Unity nu poate determina care vor fi folosite și care nu vor fi utilizate). Amintiți-vă acest lucru, ar trebui să vă asigurați că în folderul Resurse sunt doar acele active care sunt cu adevărat necesare în timpul jocului. În plus, în loc să stocați dosarul Active în directorul Resurse, puteți selecta AssetBundles pentru a le încărca dinamic pentru a reduce în continuare dimensiunea de construire.

Sfaturi pentru reducerea mărimii ansamblului

Adesea, cea mai mare parte a spațiului din ansamblu este ocupată de texturi. Primul lucru pe care trebuie să-l faceți este să utilizați formate de textură comprimată (DXT (pentru platforme desktop) sau PVRTC), atunci când este posibil.

Dacă acest lucru nu duce la o diminuare a dimensiunii, încercați să reduceți calitatea texturilor. Trucul aici este că nu este necesar să modificați conținutul original. Doar selectați textura din fereastra Project și modificați valoarea proprietății Max Size (dimensiunea maximă) din setările de import. Puteți mări imaginea obiectului care utilizează textura selectată și selectați valoarea Max. Mărime astfel încât să nu observați deteriorarea calității texturii în fereastra de vizualizare a scenei.

Unitate - reducerea manuală a dimensiunii fișierului de asamblare






Schimbarea dimensiunii maxime a texturii va afecta numai rezoluția texturii din joc și nu va schimba textura texturii dvs.

Următorul tabel arată cât spațiu este ocupat de diferite formate de imagine, în bytes per pixel:

Consumul de memorie (octeți / pixel)

Formula spațiului pe disc este după cum urmează: width * height * bpp. Dacă utilizați mipmaps, dimensiunea discului va fi cu aproximativ o treime mai mare decât cu imaginea obișnuită.

Mesh și animații

Meshurile și clipurile de animație importate se pot micșora pentru a ocupa mai puțin spațiu în construirea jocului. Compresia poate fi activată în setările pentru importul fileurilor.

Când se stoarcă ochiurile și animațiile, este folosită cuantizarea, deci chiar dacă dimensiunea fișierului este mai mică, compresia poate introduce unele erori. Încercați experimental să stabiliți ce raport de comprimare este acceptabil pentru modelele dvs.

Rețineți că prin comprimarea filetului se reduce numai dimensiunea fizică a fișierelor, dar nu cantitatea de memorie utilizată la executarea programului. Dar reducerea numărului de cadre cheie din animație (valoarea de reducere a keyframei din proprietatea Compression animație din setările de import) reduce atât dimensiunea fizică a fișierelor, cât și consumul de memorie în timpul executării programului, prin urmare este recomandat să lăsați întotdeauna această setare.

În mod implicit, Unity include numai aceste DLL-uri în ansamblu:

  • mscorlib.dll
  • Boo.Lang.dll
  • UnityScript.Lang.dll
  • UnityEngine.dll

Când lucrați la joc, este recomandat să evitați utilizarea dependențelor de la System.dll sau System.Xml.dll. În mod implicit, Unity nu include aceste biblioteci în ansamblul jucătorului, dar dacă folosiți clasele în codul dvs., bibliotecile vor fi incluse în ansamblu. Aceste fișiere DLL vor adăuga aproximativ un megabyte la mărimea construirii playerului. Dacă jocul dvs. necesită lucrul cu XML, puteți utiliza bibliotecile ca Mono.Xml.zip ca o mică alternativă la bibliotecile de sistem. Deși majoritatea recipientelor generice sunt conținute în mscorlib, dar Stack<> și altele sunt în System.dll, deci încercați să evitați să le utilizați ori de câte ori este posibil.

Unitate - reducerea manuală a dimensiunii fișierului de asamblare
După cum puteți vedea, Unity include System.Xml.dll și System.dll, când asamblați playerul

Reducerea dimensiunii bibliotecii mobile .NET

Pentru unele dispozitive mobile, Unity acceptă două niveluri de compatibilitate .NET API. NET 2.0 și un subset de .NET 2.0 (subset .NET 2.0). Puteți selecta nivelul adecvat pentru asamblarea dvs. în setările playerului.

Profilul .NET 2.0 API corespunde versiunii complete a API-ului .NET 2.0. Majoritatea rutinelor de bibliotecă sunt pe deplin implementate, prin urmare, această opțiune vă permite să obțineți cea mai bună compatibilitate cu un cod existent. Cu toate acestea, majoritatea jocurilor nu necesită o versiune completă a bibliotecii și codul inutil ocupă un spațiu de memorie important.

Întrebări frecvente despre AssetBundles







Articole similare

Trimiteți-le prietenilor: