Indubbiamente l’Addressable Asset System di Unity è stata una introduzione che ha rivoluzionato il modo di pensare la gestione degli assets di un progetto e soprattutto la loro distribuzione (si pensi ad esempio ad aggiornamenti e mods).
Una delle necessità che potrebbero sorgere in certi contesti (ad esempio strutture dinamiche, frameworks esterni, etc) è quella di poter impostare la RemoteLoadPath dinamicamente e non forzatamente nel profilo addressable attivo.
Come sappiamo la RemoteLoadPath viene valutata a runtime (in quanto definibile con parentesi graffe) e non in fase di build come la RemoteBuildPath (in quanto definibile con parentesi quadre).
Per questo motivo la RemoteLoadPath permette di essere impostata tramite codice attraverso una semplice impostazione di una variabile globale. C’è da specificare che tale variabile deve essere però necessariamente in un namespace, di una classe e definita pubblicamente e staticamente, nel modo seguente:
namespace AddressableProject
{
public class PathDefinition : MonoBehaviour
{
public static string BASE_URL = "";
}
}
A questo punto basta inserire il seguente codice in cima ad un qualsiasi file del progetto (presumibilmente dove verranno caricati gli asset Addressable inizialmente) ed avremo la possibile di gestire la path di caricamento remota degli Addressable come meglio vogliamo, ad esempio.
AddressableProject.PathDefinition.BASE_URL = "https://www.crearevideogiochi.it"
Sarà infine necessario modificare la voce RemoteLoadPath dentro il profilo attivo nel modo seguente:
{AddressableProject.PathDefinition.BASE_URL}/[BuildTarget]
affinchè il sistema degli asset utilizzi la varibile da noi definita per impostare il percorso.