En Reutilizar código, es posible que haya notado el uso frecuente del método game:GetService().Los servicios de Roblox te permiten acceder a las funciones integradas del motor, como vender artículos en la experiencia, habilitar el chat, reproducir sonidos, animar objetos y gestionar instancias.
De hecho, los servicios son el primer paso en el patrón más fundamental y común de desarrollo de Roblox :
- Obtener servicios.
- Requiere scripts de módulo.
- Añadir funciones locales.
- Añade los eventos que activan esas funciones.
Por ejemplo, es posible que quieras guardar las posiciones de los jugadores en el mundo cuando salgan de tu experiencia:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Función local que llama a una función reutilizable en el guión del script.
local function saveProgress(character)
-- Obtén la posición del personaje del jugador.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Usa la función saveData en el scriptdel módulo, que escribe en
-- Servicio de almacén de datos.
SaveManager.saveData(character, position)
end
-- Otra función local que llama a saveProgress() cuando se elimina un personaje
-- de la experiencia (en este caso, cuando el jugador se va).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Llama a onPlayerAdded cuando un jugador se conecta por primera vez a la experiencia.
Players.PlayerAdded:Connect(onPlayerAdded)
Algunos detalles clave incluyen:
- Debido a que solo debe recuperar un servicio una vez por script, la convención es darle a la variable el mismo nombre que el servicio.Esta convención se aplica a los scripts de módulo, también.
- Recuperas servicios con la variable global game, una referencia a la raíz del aplicación de modeladode datos.
- Roblox no hace garantías alrededor de la orden de carga (y la transmisión de instancias complica aún más lo que se carga y no se carga en cualquier momento), por lo que el uso de Instance:WaitForChild() es una medida de seguridad importante.
En lugar de comparar bibliotecas estándar, funciones y variables globales o bibliotecas de terceros, una gran parte del desarrollo de Roblox se trata de identificar qué de los muchos, muchos servicios pueden ayudarle a agregar la funcionalidad deseada a sus experiencias.En el ejemplo anterior, en lugar de usar una biblioteca de I/O estándar para escribir en el disco, usa servicios de nube para almacenar datos.
Servicios de contenedor
Los servicios de contenedor pueden contener y influir en otros objetos.Estos servicios de contenedor residen en la raíz del modelo de datos y son visibles en la ventana Explorador de Studio.Colectivamente, estos servicios de contenedor forman una estructura jerárquica para el aplicación de modeladode datos, por lo que el motor de Roblox puede interpretar y renderizar correctamente tu lugar.La siguiente tabla incluye algunos servicios de contenedor comunes.
Servicio | Descripción :--- | :--- Workspace | Contiene todos los objetos que se renderizan en el mundo 3D, como partes y terreno.Lighting | Contiene objetos para establecer efectos de iluminación universales, como Atmosphere y Sky. ReplicatedStorage y ReplicatedFirst | Contienen contenido y lógica que se replica entre el servidor y el cliente.
Para examinar aún más el aplicación de modeladode datos, puedes usar estos métodos:
- game:FindService() busca la instancia del servicio especificado.
- game:GetChildren() devuelve un array de todos los hijos raíz del aplicación de modeladode datos, que son los servicios de contenedor de alto nivel.
- game:GetDescendants() devuelve un array de todos los descendientes del aplicación de modeladode datos, incluidos todos los servicios de contenedor y sus hijos.
Para obtener más información sobre los servicios de contenedores, consulte la documentación del modelo de datos de.
Servicios de programación
Los servicios de scripting proporcionan funcionalidad estándar en el motor Roblox que llamas dentro de los scripts.La siguiente tabla incluye algunos servicios de scripting comunes.
Servicio | Descripción :--- | :--- TweenService | Usado para interpolar propiedades numéricas de otras instancias desde un valor de inicio a fin, con opciones para facilitar la dirección y el estilo, repetir y retrasar. MarketplaceService | El servicio responsable de las transacciones en la experiencia, como solicitar al jugador que compre un producto de desarrollador, una suscripción o un pase de juego, actualice a Roblox Premium, etc. ContextActionService | Le permite vincular la entrada del usuario, como un tocarde tecla, un toque de pantalla o un presionamiento de botón de control, a acciones contextuales, como la modificación de controles cuando el usuario entra y sale de un automóvil. RunService | Contiene métodos y eventos para la gestión del tiempo por marco, así como para verificar el contexto (servidor, cliente, modo Studio) en el que se ejecuta la experiencia.Útil para ejecutar cualquier proceso o actualización en cada marco de tiempo de ejecución.SoundService | Controla varios aspectos globales de cómo se reproduce el audio en una experiencia, como la escala de Doppler y el sonido, audiovolumétrico.También puede contener grupos de sonido para controlar las propiedades de volumen y efectos dinámicos de varias señales de audio a la vez. CollectionService | Administra grupos (colecciones) de instancias con etiquetas que se replican del servidor al cliente, lo que te permite asignar y trabajar más fácilmente con grupos de instancias relacionadas.
Servicios de nube
Roblox también tiene servicios de nube especiales para manejar tareas y procesos que ocurren en la nube de Roblox.La siguiente tabla incluye algunos servicios de nube comunes.
Servicio | Descripción :--- | :--- DataStoreService | Para almacenar datos persistentes entre sesiones.MemoryStoreService | Para almacenar datos frecuentes y efímeros que cambian rápidamente.MessagingService | Para comunicarse entre múltiples servidores durante sesiones en vivo.
Los servicios de nube también tienen API web correspondientes; son accesibles desde scripts o herramientas externas. Para obtener más información, vea Abrir nube.