Mit der Funktion zur Erstellung von In-Game-Assets können Sie Ihren Benutzern ermöglichen, Kreationen, die sie in Ihrem Spiel erstellt haben, in ihren Inventaren zu speichern. Ihre Benutzer können diese In-Game-Kreationen wie jedes andere Asset verwenden. Darüber hinaus tragen diese Kreationen zu Ihrem Spiel bei, wenn sie auf der Roblox-Plattform angezeigt werden, sodass jeder Benutzer den Attributionslink verwenden kann, um zu Ihrem Spiel zu gelangen und ihre eigenen zu erstellen.
Zum Beispiel können Sie Benutzern ermöglichen, benutzerdefinierte Kreaturen als Haustiere in Ihrem Spiel zu erstellen und ihnen erlauben, ihre Lieblingshaustiere in ihren Inventaren zu speichern. Sie haben die volle Kontrolle darüber, welche Objekte Benutzer in Ihrem Spiel ändern und speichern können. Die Benutzer können ihre Kreationen in ihren Profilen mit einer Attribution zu Ihrem Spiel anzeigen, was die Sichtbarkeit Ihres Spiels erhöht.
Unterstützte Asset-Typen und Einschränkungen
Wie alle Assets auf der Plattform unterliegen In-Game-Kreationen der Asset-Mod moderation. Derzeit können Sie Benutzern nur erlauben, Pakete aus Ihrem Spiel zu erstellen. Diese Pakete dürfen keine Skripte oder private Assets wie Audio, Video und verschachtelte Pakete enthalten. Wenn das System Skripte oder private Assets in einem von Benutzern speicherbaren Paket erkennt, blockiert es die In-Game-Speicheraktion, indem es den Speicherprompt für die Benutzer ausblendet.
Wenn Sie Ihr Spiel ausführen oder testen und Skripte oder private Assets als Teil einer In-Game-Kreation hinzufügen, kann es nicht gespeichert werden und zeigt Fehlermeldungen im Studio Ausgabefenster oder in der Entwicklerkonsole an.
Aktivierung der Erstellung von In-Game-Assets
Um die Erstellung von In-Game-Assets für Ihre Benutzer zu aktivieren, verwenden Sie die AssetService:PromptCreateAssetAsync() API-Methode in einem serverseitigen Skript, zusammen mit anderer Erstellung Logik. Legen Sie fest, welche Instanzen in Ihrem Spiel Sie für diese Funktionalität aktivieren möchten, setzen Sie einen benutzerdefinierten Auslöser (wie ein UI-Symbol) für den Aufruf der Methode und hören Sie auf Remote-Events des Clients für das Speichern von Assets.
AssetService:PromptCreateAssetAsync() nimmt die folgenden Parameter:
- Ein Player Objekt, das den Benutzer darstellt, der eine Asset-Erstellung einreicht.
- Ein Instance Objekt, das das Asset für die Erstellung darstellt.
- Den Enum.AssetType, der derzeit auf Enum.AssetType.Model beschränkt ist.
Wenn der Server AssetService:PromptCreateAssetAsync() aufruft, zeigt es ein Paket einreichen Dialogfeld auf dem Client an, sodass der Benutzer, der die Speicheraktion auslöst, einen Namen und eine Beschreibung für das Paket eingeben kann. Roblox stellt die Dialog-UI sofort zur Verfügung, da der Speicher Workflow eine plattformübergreifende Funktionalität ist.
Das folgende serverseitige Beispielskript fordert Benutzer auf, ein Auto zu speichern, das sie in einem Spiel lackiert haben:
Beispiel-Skript zur Erstellung von In-Game-Assets
-- Definiere die AssetService-Variable
local AssetService = game:GetService("AssetService")
-- Richte PromptCreateAssetAsync() zur Aufforderung des Einreichungsdialogfelds ein
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("erfolgreich hochgeladen, AssetId:", assetId)
else
print("Erhaltenes Ergebnis", result)
end
else
print("Fehler")
print(result)
end
end
-- Logik zum Lackieren des Autos weggelassen
-- Fügen Sie einen Ereignis-Handler hinzu
local function onUserPublish(player, promptObject)
-- Benutzer speichert die Auto-Instanz mit der Standardfarbe des Spiels
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)
In-Erlebnis Erstellungs-Demo-Arena zeigt ein Beispiel, wie Sie diese Funktion nutzen können. Sie können der Demo beitreten, um den Workflow zur Erstellung im Spiel als Benutzer zu durchlaufen oder den Ort im Studio zu bearbeiten, um auf das Design zu verweisen.
Nach der Erstellung und Attribution
Nachdem Benutzer ein Asset aus Ihrem Spiel erstellt und gespeichert haben, können sie es an folgenden Orten finden:
- Auf ihrer Mein Inventar Seite.
- Im Kreationen Tab ihrer Profil Seite.
- Im Entwicklungsobjekte Tab unter ihrem Creator Dashboard Kreationen Seite.
- Im Inventar Tab ihrer Toolbox im Studio.
Wenn Benutzer In-Game-Kreationen auf den Profilen oder in den Inventaren ihrer Freunde sehen, sehen sie die Attribution zu dem ursprünglichen Spiel, in dem das Asset erstellt wurde. Benutzer können auf den Attributionslink klicken, um zur Spieleseite weitergeleitet zu werden, damit sie dem Spiel beitreten und ihre eigenen erstellen können.