I sistemi di oggetti e inventario sono una parte fondamentale di molti tipi di giochi. Puoi personalizzare l'inventario dei Giocatori di Fortnite utilizzando le Entità e i componenti Scene Graph per creare oggetti univoci per la tua isola.
Gli oggetti sono oggetti che giocatori e agenti possono utilizzare e possedere. Gli inventari includono l'inventario dei giocatori di Fortnite esistente e tutti gli inventari personalizzati creati con inventory_component. Oggetti e inventari personalizzati è un sistema per creare, controllare e memorizzare oggetti. Questo sistema è una funzionalità sperimentale che devi abilitare in Impostazioni progetto e utilizzare con Scene Graph e Verse in Unreal Editor per Fortnite (UEFN).
Nozioni di base su Scene Graph
Scene Graph è un sistema di entità e componenti, compilato in Verse. Le entità sono contenitori per componenti e i componenti forniscono funzionalità a un'entità. Puoi allegare entità tra loro in una relazione genitore-figlio che crea gerarchie. Una disposizione riutilizzabile di entità e componenti è chiamata prefab.
Per maggiori informazioni su entità e componenti, consulta Utilizzo di entità e componenti. Per maggiori informazioni sui prefab, consulta Prefab e istanze prefab.
Oggetti
Gli oggetti vengono creati in Scene Graph posizionando un item_component su un'entità. Gli inventari trattano il componente come un oggetto. item_component fornisce funzionalità come:
equipaggiamento e disequipaggiamento.
Categorie denominate per confronto e ordinamento.
Di per sé, item_component fornisce opzioni limitate a un oggetto. Ulteriori componenti creano qualcosa di più interessante con funzionalità avanzate.
Per maggiori informazioni, consulta Componente oggetto.
Inventari
Gli inventari sono contenitori di oggetti e controllano che cosa succede a tali oggetti. Un inventario è un'entità che ha un inventory_component e funziona nei seguenti modi:
essere a conoscenza di tutti gli oggetti che esistono al suo interno.
regola quali oggetti possono entrare o uscire dall'inventario.
Determina cosa succede quando un oggetto in arrivo vuole unirsi a un oggetto già presente nell'inventario.
Poiché un oggetto può esistere solo all'interno di un inventario alla volta, gli inventari determinano anche la proprietà delle entità oggetto. Le sottoentità di un inventario sono considerate oggetti all'interno dell'inventario solo se hanno anche un item_component, in caso contrario sono sottoentità figlio.
Per impostazione predefinita, gli inventari possono contenere un numero e una varietà infiniti di oggetti. Con Verse puoi creare restrizioni e regole che influenzano l'aggiunta e la rimozione di oggetti. Per esempio:
Aggiungi oggetti a un inventario solo se rientrano nella categoria corretta.
Limita il numero di oggetti in un inventario.
Impedisci che l'ultimo oggetto venga rimosso da un inventario.
Permetti agli oggetti con priorità più alta di espellere quelli con priorità più bassa quando l'inventario è pieno.
Limita un inventario a un singolo oggetto.
Alberi dell'inventario
Gli inventari sono a conoscenza di qualsiasi inventario che si trova sotto di essi nella gerarchia Scene Graph. Questi inventari figlio sono noti come sottoinventari. Puoi sfruttare l'albero degli inventari in molti modi.
Ad esempio, puoi aggiungere un oggetto a un inventario genitore dove può trovare la sua strada verso un inventario figlio più specializzato. Puoi immaginare come se si desse una moneta al giocatore facendola viaggiare attraverso il sistema di inventario fino a un portafoglio (Inventario giocatore > Inventario zaino > Inventario portamonete).
Per creare un comportamento dell'inventario più avanzato, è necessario scrivere in Verse.
Verse: Inventari
Esistono due modi per aggiungere un oggetto a un inventario.
Chiama
AddItem()per aggiungere un oggetto specificamente a un inventario.Chiamando la funzione
AddItemDistribute()e utilizzando la gerarchia dell'inventario per trovare l'inventario o il sottoinventario più adatto.
Quando viene chiamata la funzione AddItemDistribute(), l'inventario obiettivo e tutti i suoi sottoinventari hanno l'opportunità di valutare e rivendicare l'oggetto. Dopo che ciascuno è stato preso in considerazione, l'inventario più adatto tenta di aggiungere l'oggetto.
Radice inventario giocatore
I giocatori hanno un inventario per impostazione predefinita. Questo è noto come Radice inventario. A differenza di altri inventari, la Radice inventario del giocatore non può accettare oggetti. Invece, funge da genitore per i sottoinventari al di sotto di esso. Ciò consente di scegliere come obiettivo la Radice inventario con AddItemDistribute() e di consentire a un oggetto di trovare un inventario idoneo, anche se l'obiettivo iniziale non può riceverlo.
Affinché un giocatore possa ricevere oggetti, deve avere uno o più sottoinventari sotto la Radice inventario.
La spiegazione di cui sopra non riguarda le entità che hanno un inventory_component aggiunto tramite Verse o tramite l'editor dei prefab.