Com a funcionalidadede criação de ativos na experiência, você pode permitir que seus usuários salvem criações feitas na sua experiência em seus inventários. Seus usuários podem usar essas criações na experiência como qualquer outro ativo. Além disso, essas criações atribuem à sua experiência quando exibidas na plataforma Roblox, para que qualquer usuário possa usar o link de atribuição para vir à sua experiência e criar a sua possuir.
Por exemplo, você pode permitir que os usuários criem criaturas personalizadas como animais de estimação em sua experiência e permitir que eles salvem seus animais de estimação favoritos em seus inventários. Você tem controle total para especificar quais objetos os usuários podem modificar e salvar de sua experiência. Os usuários, por sua vez, podem exibir suas criações em seus perfis com atribuição à sua experiência, aumentando a visibilidade da sua experiência.
Tipos de ativos suportados e limites
Como todos os ativos na plataforma, as criações na experiência estão sujeitas a moderação de ativos. Atualmente, você só pode permitir que os usuários criem pacotes a partir de sua experiência. Esses pacotes não podem conter scripts ou ativos privados, como áudio, vídeo e pacotes aninhados. Se o sistema detectar scripts ou ativos privados em um pacote que pode ser salvo por usuários, ele bloqueia a ação de salvar na experiência escondendo o prompt de salvamento para usuários.
Quando você está rodando ou testando sua experiência e adicionando scripts ou ativos privados como parte de uma criaçõesna experiência, ele falha em salvar e solicita mensagens de erro para a janela de saída do Studio ou para o Console de Desenvolvedor .
Habilitando a Criação de Ativos na Experiência
Para habilitar a criação de ativos na experiência para seus usuários, use o método API AssetService:PromptCreateAssetAsync() em um script do lado do servidor, juntamente com outra lógica de criação. Especifique quais instâncias em sua experiência você deseja habilitar essa funcionalidade, defina um gatilho personalizado (como um ícone de interface do usuário) para invocar o método e ouvir eventos remotos do cliente para salvar ativos.
AssetService:PromptCreateAssetAsync() leva os seguintes parâmetros:
- Um objeto Player que representa o usuário que envia uma criaçõesde ativos.
- Um Instance objeto que representa o ativo para criações.
- O Enum.AssetType , que atualmente está limitado a Enum.AssetType.Model .
Quando o servidor invoca AssetService:PromptCreateAssetAsync() , ele solicita uma caixa de diálogo Enviar Pacote no cliente, para que o usuário que aciona a ação de salvar possa inserir um nome e descrição para o pacote. Roblox fornece a interface de usuário de diálogo pronta para uso, pois o workflow de salvamento é uma funcionalidade de nível de plataforma.
O seguinte exemplo de script do lado do servidor solicita aos usuários que salvem um carro que eles pintam em uma experiência:
Script de exemplo para criação de ativos na experiência
-- Defina a variável AssetService
local AssetService = game:GetService("AssetService")
-- Configure PromptCreateAssetAsync () para solicitar a caixa de diálogo de envio
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
-- Lógica de pintura de carro omitida
-- Adicionar um gerenciador de eventos
local function onUserPublish(player, promptObject)
-- O usuário salva a instância de carro com a cor padrão da experiência
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-Experience Creation Demo Arena mostra um exemplo de como você pode usar essa funcionalidade. Você pode participar da demonstração para percorrer o fluxo de criação na experiência como usuário e acessar o arquivo de local usando a opção Editar no Studio para consultar o design.
Pós-Criação e Atribuição
Depois que os usuários criarem e salvarem um ativo de sua experiência, eles poderão encontrá-lo nos seguintes lugares:
- Sua página Meu Inventário.
- A guia Criações da página Perfil.
- A guia de Itens de Desenvolvimento em seu Painel do Criador página de Criações.
- A guia Inventário de sua Caixa de Ferramentas no Studio.
Quando os usuários vêem criações na experiência nos perfis ou inventários de seus amigos, eles vêem a atribuição à experiência original na qual o ativo foi criado. Os usuários podem clicar no link de atribuição para redirecionar para a página de experiência, para que possam participar da experiência e criar a sua possuir.