This is an old revision of the document!
6. Livrarea online a conținutului
Cerinte
Realizati un joc de curse simplu cu urmatoarele funcitonalitati:
un main menu (sau launcher) din care se poate selecta o scena (minim 2): scenele trebuie sa se descarce inainte de a se putea juca
fiecare scena are un traseu de curse, si cateva panouri publicitare configurate intr-o platforma web externa/baza de date externa (de ex se poate configura o reclama cu Coca Cola sau Pepsi)
Documentatie
In Unity principalele metode de a folosi continut gestionat extern sunt Unity AssetBundles si Addressables.
AssetBundles
AssetBundles sunt arhive binare generate de Unity care conțin asset-uri (texturi, prefabs, scene etc.) pentru o platformă țintă.
La ce ajută: livrare de conținut după instalare (patch/DLC), reducerea dimensiunii build-ului, streaming de conținut.
Cum funcționează:
în Editor creezi bundle-uri (prin scripting sau AssetBundle labels)
faci BuildPipeline.BuildAssetBundles(…) (sau pipeline modern)
la runtime descarci fișierul bundle (din CDN/local)
îl încarci cu AssetBundle.LoadFromFile / LoadFromMemoryAsync
extragi asset-uri cu LoadAssetAsync<T>()
Limitări: management manual pentru dependențe, caching, versioning, naming, update logic.
Addressables
Addressables un layer peste AssetBundles care oferă:
address (cheie logică) pentru asset-uri
catalog (index/manifest) cu ce există și unde se găsește (local/remote)
management automat al dependențelor, caching, update, profiling
În spate: Addressables generează AssetBundles + catalog.
De ce sunt preferate: workflow mult mai simplu pentru patch/DLC:
CheckForCatalogUpdates → UpdateCatalogs
GetDownloadSizeAsync(label/address)
DownloadDependenciesAsync(…)
LoadAssetAsync<T>(address) / LoadSceneAsync(address)
Când folosești labels: pentru a grupa conținut (ex: track_winter, ads, skins_pack_01) și a descărca “pachetul”.