Con la función de creación de activos en la experiencia, puedes permitir que tus usuarios guarden las creaciones que hicieron en tu experiencia en sus inventarios. Tus usuarios pueden usar estas creaciones en la experiencia como cualquier otro recurso. Además, estas creaciones se atribuyen a tu experiencia cuando se muestran en la plataforma Roblox, por lo que cualquier usuario puede usar el enlace de atribución para venir a tu experiencia y crear su en posesión.
Por ejemplo, puedes permitir a los usuarios crear criaturas personalizadas como mascotas en tu experiencia y permitirles guardar sus mascotas favoritas en su inventario. Tienes control completo para especificar qué objetos pueden modificar y guardar los usuarios de tu experiencia. Los usuarios a su vez pueden mostrar sus creaciones en sus perfiles con atribución a tu experiencia, aumentando la visibilidad de tu experiencia.
Tipos y límites de activos compatibles
Al igual que todos los activos en la plataforma, las creaciones en la experiencia están sujetas a moderación de activos . Actualmente, solo puede permitir que los usuarios creen paquetes a partir de su experiencia. Estos paquetes no pueden contener scripts ni activos privados, como sonido, audio, video y paquetes anidados. Si el sistema detecta scripts o activos privados en un paquete que pueden ser guardados por los usuarios, bloquea la acción de guardado en la experiencia ocultando el aviso de guardado para los usuarios.
Cuando está ejecutando o probando su experiencia y agrega scripts o activos privados como parte de una creacionesen la experiencia, no se guarda y envía mensajes de error a la ventana de salida de Studio o a la Developer Console .
Habilitar la creación de activos en la experiencia
Para habilitar la creación de activos en la experiencia para sus usuarios, use el método API AssetService:PromptCreateAssetAsync() en un script del lado del servidor, junto con otra lógica de creación. Especifique qué instancias de su experiencia desea habilitar esta funcionalidad, configure un desencadenante personalizado (como un íconode interfaz de usuario) para invocar el método y escuche los eventos remotos del cliente para guardar activos.
AssetService:PromptCreateAssetAsync() toma los siguientes parámetros:
- Un Player objeto que representa al usuario que envía una creacionesde activos.
- Un Instance objeto que representa el recurso para la creaciones.
- El Enum.AssetType , que actualmente está limitado a Enum.AssetType.Model .
Cuando el servidor invoca AssetService:PromptCreateAssetAsync() , solicita un diálogo de envío de paquete en el cliente, para que el usuario que activa la acción de guardado pueda ingresar un nombre y descripción para el paquete. Roblox proporciona la interfaz de usuario del diálogo ya que el flujo de trabajo de guardado es una funcionalidad de nivel de plataforma.
El siguiente ejemplo de script del lado del servidor solicita a los usuarios que guarden un coche que pintan en una experiencia:
Ejemplo de script para la creación de activos en la experiencia
-- Define la variable AssetService
local AssetService = game:GetService("AssetService")
-- Configura PromptCreateAssetAsync () para solicitar el diálogo de enví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
-- Se omitió la lógica de pintura de coches
-- Añadir un gestor de eventos
local function onUserPublish(player, promptObject)
-- El usuario guarda la instancia de coche con el color predeterminado de la experiencia
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 muestra un ejemplo de cómo puedes usar esta función. Puedes unirte a la demostración para caminar por el flujo de trabajo de creación en la experiencia como usuario y acceder al archivo de lugar usando la opción Editar en Studio para hacer referencia al diseño.
Post-Creación y Atribución
Después de que los usuarios creen y guarden un recurso de tu experiencia, podrán encontrarlo en los siguientes lugares:
- Su Mi Inventario página.
- La pestaña Creaciones de su página Perfil.
- La pestaña de Artículos de desarrollo debajo de su Panel de creadores Página de creaciones.
- La pestaña Inventario de su Caja de herramientas en Studio.
Cuando los usuarios ven creaciones en la experiencia en los perfiles o inventarios de sus amigos, ven la atribución a la experiencia original en la que se creó el activo. Los usuarios pueden hacer clic en el enlace de atribución para redirigir a la página de experiencia, para que puedan unirse a la experiencia y crear su en posesión.