Avec la fonctionalitéde création de ressources dans l'expérience, vous pouvez permettre à vos utilisateurs de sauvegarder les créations qu'ils ont faites dans votre expérience dans leurs inventaires.Vos utilisateurs peuvent utiliser ces créations dans l'expérience comme n'importe quel autre contenu.En outre, ces créations attribuent à votre expérience lorsqu'elles sont affichées sur la plateformeRoblox, de sorte que tout utilisateur peut utiliser le lien d'attribution pour venir à votre expérience et créer la posséder.
Par exemple, vous pouvez permettre aux utilisateurs de créer des créatures personnalisées en tant qu'animaux de compagnie dans votre expérience et de les sauvegarder dans leurs inventaires.Vous avez un contrôle complet pour spécifier quels objets les utilisateurs peuvent modifier et enregistrer de votre expérience.Les utilisateurs peuvent à leur tour afficher leurs créations sur leurs profils avec une attribution à votre expérience, ce qui augmente la visibilité de votre expérience.
Types de ressources et limites pris en charge
Tout comme toutes les ressources sur la plateforme, les créations en expérience sont soumises à la modération des ressources.Actuellement, vous ne pouvez autoriser les utilisateurs à créer que des paquets à partir de votre expérience.Ces packages ne peuvent pas contenir d' scripts ou de ressources privées, tels que l'audio, la vidéo et les packages imbriqués.Si le système détecte des scripts ou des ressources privées dans un paquet qui peut être sauvegardé par les utilisateurs, il bloque l'action de sauvegarde dans l'expérience en masquant l'invite de sauvegarde pour les utilisateurs.
Lorsque vous exécutez ou testez votre expérience et que vous ajoutez des scripts ou des ressources privées en tant que partie d'une créationsdans l'expérience, cela échoue à enregistrer et demande des messages d'erreur dans la fenêtre Sortie de Studio ou dans la console du développeur.
Activer la créationsde ressources dans l'expérience
Pour activer la création d'actifs dans l'expérience pour vos utilisateurs, utilisez la méthode AssetService:PromptCreateAssetAsync() de l'API côté script, ainsi que d'autres logiques de création.Spécifiez quelles instances de votre expérience vous souhaitez activer cette fonctionnalité, définissez un déclencheur personnalisé (tel qu'une icône d'interface utilisateur) pour invoquer la méthode et écoutez les événements clients à distance pour enregistrer des ressources.
AssetService:PromptCreateAssetAsync() prend les paramètres suivants :
- Un objet Player représentant l'utilisateur qui soumet une créationsde ressources.
- Un objet Instance représentant la ressource à créations.
- Le Enum.AssetType , qui est actuellement limité à Enum.AssetType.Model .
Lorsque le serveur invoque AssetService:PromptCreateAssetAsync(), il demande un dialogue Soumettre le paquet sur le client, afin que l'utilisateur qui déclenche l'action de sauvegarde puisse entrer un nom et une description pour le paquet.Roblox fournit l'interface de dialogue en dehors de la boîte, car le flux de travail de sauvegarde est une fonctionnalité de niveau plate-forme.
Le script côté serveur suivant invite les utilisateurs à enregistrer une voiture qu'ils peignent dans une expérience :
Exemple de script pour la création de ressources dans l'expérience
-- Définir la variable AssetService
local AssetService = game:GetService("AssetService")
-- Configurer PromptCreateAssetAsync() pour demander le dialogue de soumission
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("successfully uploaded, AssetId:", assetId)
else
print("Received result", result)
end
else
print("error")
print(result)
end
end
-- Logique de peinture de voiture omise
-- Ajouter un gestionnaire d'événement
local function onUserPublish(player, promptObject)
-- L'utilisateur enregistre l'instance de voiture avec la couleur par défaut de l'expérience
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)
Arena de démonstration de création en expérience montre un exemple de la façon dont vous pouvez utiliser cette fonctionalité.Vous pouvez rejoindre la démonstration pour parcourir le flux de travail de création dans l'expérience en tant qu'utilisateur, ou modifier l'endroit dans Studio pour référencer le design.
Post-création et attribution
Après que les utilisateurs aient créé et enregistré une ressource dans votre expérience, ils peuvent la trouver aux endroits suivants :
- Leur page Mon inventaire.
- L'onglet créations de leur page profil.
- L'onglet éléments de développement sous leur page de tableau de bord des créateurs créations.
- L'onglet Inventaire de leur boîte à outils dans Studio.
Lorsque les utilisateurs voient des créations en expérience sur les profils ou les inventaires de leurs amis, ils voient une attribution à l'expérience originale dans laquelle la ressource a été créée.Les utilisateurs peuvent cliquer sur le lien d'attribution pour se rediriger vers la page d'expérience, afin qu'ils puissent rejoindre l'expérience et en créer leur posséder.