Com a funcionalidadede criação de recursos na experiência, você pode permitir que seus usuários salvem as criações que fizeram na sua experiência para seus inventários. Seus usuários podem usar essas criações na experiência como qualquer outro ativo, então qualquer usuário pode usar o link de atribuição para vir à sua experiência e criar sua possuir.
Por exemplo, você pode habilitar os usuários a criar criaturas personalizadas como animais de estimação em sua experiência e permitir que eles salvam seus animais de estimação favoritos em seus inventários. Você tem controle completo para especificar quais objetos os usuários podem modificar e salvar de sua experiência. Os usuários em vez disso podem exibir suas criações em seus perfis com atribuição à sua experiência, aumentando a visibilidade de sua experiência.
Tipos e Limites de Recursos Suportados
Exatamente como todos os recursos na plataforma, criações na experiência estão sujeitas a moderação de recursos. Atualmente, você só pode permitir que os usuários criem pacotes a partir de sua experiência. Esses pacotes não podem conter nenhum script ou recurso privado, como áudio, vídeo e pacotes aninhados. Se o sistema detectar scripts ou recursos privados em um pacote que pode
Quando você está executando ou testando sua experiência e adicionando scripts ou recursos privados como parte de uma criaçõesna experiência, ele falha ao salvar e exibe mensagens de erro na janela de saída do Studio ou na consola de desenvolvedores.
Habilitando a Criação de 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 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, configure um trigger personalizado (como um ícone de UI) para invocar o método e ouça eventos remotos do cliente para salvar recursos.
AssetService:PromptCreateAssetAsync() leva os seguintes parâmetros:
- Um objeto Player representando 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() , ele solicita uma caixa de diálogo Submeter Pacote no cliente, para que o usuário que desencadeia a ação de salvar possa inserir um nome e uma descrição para o pacote. O Roblox fornece a caixa de diálogo UI fora do pacote, pois a ação de salvar é 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 In-Experience
-- Definir a variável AssetService
local AssetService = game:GetService("AssetService")
-- Configure o 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 carros omitida
-- Adicione um gerenciador 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)
In-Experience Creation Demo Arena mostra um exemplo de como você pode usar este funcionalidade. Você pode se juntar à demonstração para caminhar pelo fluxo de trabalho de criação na experiência como um usuário e acessar o arquivo do local usando a opção Editar 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 guia Criações da página de Perfil deles.
- A aba Itens de Desenvolvimento sob sua página Criações.
- A aba Inventário da sua Caixa de ferramentas no Studio.
Quando os usuários vêem criações na experiência em seus perfis de amigos ou inventários, eles vêem atribuição à experiência original na qual 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 eles possam se juntar à experiência e criar a sua possuir.