Con la funzionalità di creazione di asset in gioco, puoi consentire ai tuoi utenti di salvare le creazioni che hanno realizzato nel tuo gioco nei loro inventari. I tuoi utenti possono utilizzare queste creazioni in gioco proprio come qualsiasi altro asset. Inoltre, queste creazioni attribuiscono al tuo gioco quando vengono visualizzate sulla piattaforma Roblox, quindi qualsiasi utente può utilizzare il link di attribuzione per accedere al tuo gioco e creare il proprio.
Ad esempio, puoi consentire agli utenti di creare creature personalizzate come animali domestici nel tuo gioco e permettere loro di salvare i loro animali preferiti nei loro inventari. Hai il pieno controllo per specificare quali oggetti gli utenti possono modificare e salvare dal tuo gioco. Gli utenti, a loro volta, possono visualizzare le loro creazioni sui loro profili con attribuzione al tuo gioco, aumentando la visibilità del tuo gioco.
Tipi di asset supportati e limiti
Proprio come tutti gli asset sulla piattaforma, le creazioni in gioco sono soggette a moderazione degli asset. Attualmente, puoi consentire agli utenti di creare solo pacchetti dal tuo gioco. Questi pacchetti non possono contenere script o asset privati, come audio, video e pacchetti annidati. Se il sistema rileva script o asset privati in un pacchetto che può essere salvato dagli utenti, blocca l'azione di salvataggio in gioco nascondendo il prompt di salvataggio per gli utenti.
Quando esegui o test gli utenti nel tuo gioco e aggiungi script o asset privati come parte di una creazione in gioco, il salvataggio non riesce e viene visualizzato un messaggio di errore nella finestra Output di Studio o nella Console Sviluppatore.
Abilitare la creazione di asset in gioco
Per abilitare la creazione di asset in gioco per i tuoi utenti, utilizza il metodo API AssetService:PromptCreateAssetAsync() in uno script lato server, insieme ad altra logica di creazione. Specifica quali istanze nel tuo gioco vuoi abilitare per questa funzionalità, imposta un attivatore personalizzato (come un'icona UI) per invocare il metodo e ascolta gli eventi remoti client per il salvataggio degli asset.
AssetService:PromptCreateAssetAsync() accetta i seguenti parametri:
- Un oggetto Player che rappresenta l'utente che invia una creazione di asset.
- Un oggetto Instance che rappresenta l'asset da creare.
- L'Enum.AssetType, attualmente limitato a Enum.AssetType.Model.
Quando il server invoca AssetService:PromptCreateAssetAsync(), viene visualizzato un dialogo Invia Pacchetto sul client, così l'utente che attiva l'azione di salvataggio può inserire un nome e una descrizione per il pacchetto. Roblox fornisce l'interfaccia utente del dialogo "fuori dagli schemi", poiché il flusso di salvataggio è una funzionalità a livello di piattaforma.
Il seguente esempio di script lato server invita gli utenti a salvare un'auto che dipingono in un gioco:
Script di Esempio per la Creazione di Asset in Gioco
-- Definisci la variabile AssetService
local AssetService = game:GetService("AssetService")
-- Imposta PromptCreateAssetAsync() per richiedere il dialogo di invio
local function CreateAsset(player, instance)
local complete, result, assetId = pcall(function()
return AssetService:PromptCreateAssetAsync(player, instance, Enum.AssetType.Model)
end)
if complete then
if result == Enum.PromptCreateAssetResult.Success then
print("caricamento effettuato con successo, AssetId:", assetId)
else
print("Ricevuto risultato", result)
end
else
print("errore")
print(result)
end
end
-- Logica di verniciatura dell'auto omessa
-- Aggiungi un gestore di eventi
local function onUserPublish(player, promptObject)
-- L'utente salva l'istanza dell'auto con il colore di default del gioco
if promptObject.Name == "car" then
CreateAsset(player, car)
elseif promptObject.Name == "CarPaintYellow" or promptObject.Name == "CarPaintBlue" or promptObject.Name == "CarPaintBlack" or promptObject.Name == "CarPaintRed" then
PaintCarColor(promptObject.Name)
end
end
PublishEvent.OnServerEvent:Connect(onUserPublish)
Demo Arena di Creazione in Esperienza mostra un esempio di come puoi utilizzare questa funzionalità. Puoi unirti alla demo per ripercorrere il flusso di creazione in gioco come utente, o modificare il luogo in Studio per fare riferimento al design.
Post-creazione e attribuzione
Dopo che gli utenti creano e salvano un asset dal tuo gioco, possono trovarlo nei seguenti luoghi:
- La loro pagina Il Mio Inventario.
- La scheda Creazioni della loro pagina Profilo.
- La scheda Elementi di Sviluppo nella pagina Creazioni del loro Creator Dashboard.
- La scheda Inventario del loro Toolbox in Studio.
Quando gli utenti vedono le creazioni in gioco sui profili o negli inventari dei loro amici, vedono l'attribuzione al gioco originale in cui è stato creato l'asset. Gli utenti possono fare clic sul link di attribuzione per reindirizzarsi alla pagina del gioco, così possono unirsi al gioco e creare il proprio.