Com a funcionalidade de criação de recursos na experiência, você pode permitir que seus usuários salvem criações que fizeram em 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 chegar à sua experiência e criar a possuir.
Por exemplo, você pode habilitar os usuários a criarem 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 da 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 de sua experiência.
Tipos de recurso e limites suportados
Assim como todos os recursos na plataforma, criações na experiência estão sujeitas à moderação de recursos de ativos.Atualmente, você só pode permitir que os usuários criem pacotes da sua experiência.Esses pacotes não podem conter scripts ou recursos privados, como áudio, vídeo e pacotes aninhados.Se o sistema detectar scripts ou recursos privados em um pacote que pode ser salvo por usuários, ele bloqueia a ação de salvamento na experiência ao ocultar o prompt de salvamento para usuários.
Quando você está executando ou testando sua experiência e adicionando scripts ou recursos privados como parte de uma criaçõesna experiência, ela falha ao salvar e solicita mensagens de erro ao Studio janela de saída ou ao Console do Desenvolvedor.
Habilitando a criaçõesde recursos na experiência
Para habilitar a criação de recursos na experiência para seus usuários, use o método AssetService:PromptCreateAssetAsync() na parte do 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 UI) para invocar o método e ouça eventos de cliente remotos para salvar recursos.
AssetService:PromptCreateAssetAsync() toma os seguintes parâmetros:
- Um objeto Player que representa o usuário que envia a criaçõesde um recurso.
- Um objeto Instance representando o recurso para criações.
- O Enum.AssetType, que é atualmente limitado a Enum.AssetType.Model.
Quando o servidor invoca AssetService:PromptCreateAssetAsync(), solicita um diálogo Enviar Pacote no cliente, para que o usuário que ativa a ação de salvamento possa inserir um nome e uma descrição para o pacote.O Roblox fornece a interface de diálogo fora da caixa, pois o fluxo de trabalho de salvamento é uma funcionalidade de nível de plataforma.
O seguinte exemplo de script do lado do servidor solicita que os usuários salvem um carro que eles pintam em uma experiência:
Exemplo de script para criação de recursos na experiência
-- Defina a variável AssetService
local AssetService = game:GetService("AssetService")
-- Configure PromptCreateAssetAsync() para solicitar o diálogo de submissão
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
-- Adicione um manipulador de eventos
local function onUserPublish(player, promptObject)
-- O usuário salva a instância do 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)
Arena de Demonstração de Criação na Experiência mostra um exemplo de como você pode usar essa funcionalidade.Você pode participar da demonstração para percorrer o fluxo de trabalho de criação na experiência como um usuário ou editar o local no Studio para referenciar o design.
Pós-criação e atribuição
Depois que os usuários criam e salvam um recurso da sua experiência, eles podem encontrá-lo nos seguintes locais:
- Sua página Meu Inventário.
- A aba Criações da página Perfil deles.
- A aba Itens de Desenvolvimento sob a página do Painel do Criador Criações deles.
- A aba Inventário da sua Caixa de Ferramentas no Studio.
Quando os usuários veem criações na experiência em perfis ou inventários de amigos, eles veem atribuição à experiência original em que o recurso foi criado.Os usuários podem clicar no link de atribuição para redirecionar para a página de experiência, para que possam se juntar à experiência e criar a sua possuir.