In Reutilizando Código, você pode ter notado uso frequente do método game:GetService() . Os serviços Roblox permitem que você acessar os recursos incorporados do motor, como vender itens na experiência, habilitar chat, jogar sons, animação de objetos e gerenciar instâncias.
Na verdade, os serviços são o primeiro passo em o padrão mais fundamental e comum da desenvolvimento do Roblox :
- Obter serviços.
- Requer scripts de módulo.
- Adicionar funções locais.
- Adicione os eventos que desencadeiam essas funções.
Por exemplo, você pode querer salvar as posições dos jogadores no mundo quando eles saem de sua experiência:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Função local que chama uma função reutilizável no script de módulo.
local function saveProgress(character)
-- Obtenha a posição do personagem do jogador.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Use a função saveData no script de módulo, que escreve para o
-- DataStoreService.
SaveManager.saveData(character, position)
end
-- Outra função local que chama saveProgress() quando um personagem é removido
-- da experiência (neste caso, quando o jogador sai).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Chama oPlayerAdded quando um jogador primeiro se conecta à experiência.
Players.PlayerAdded:Connect(onPlayerAdded)
Alguns detalhes-chave incluem:
- Como você só deve recuperar um serviço uma vez por script, a convenção é fornecer o mesmo nome à variável. Essa convenção se aplica a scripts de módulo, também.
- Você recupera serviços com a variável global game, uma referência à raiz do modelo de dados.
- O Roblox não oferece garantias em torno da ordem de carregamento (e streaming de instância), então o uso de Instance:WaitForChild() é uma medida de segurança importante.
Em vez de comparar bibliotecas padrão, funções e variáveis globais ou bibliotecas de terceiros, uma grande parte do desenvolvimento do Roblox é identificar qual dos muitos, muitos serviços pode ajudá-lo a adicionar a funcionalidade desejada às suas experiências. No exemplo acima, em vez de usar uma biblioteca padrão I/O para escrever no disco, você usa serviços
Serviços de Contêiner
Serviços de contêiner podem conter e influenciar outros objetos. Esses serviços de contêiner residem na raiz do modelo de dados e são visíveis na janela Explorer do Studio. Coletivamente, esses serviços de contêiner formam uma hierarquia estruturada para o modelo de dados, para que o mecanismo Roblox possa interpretar e renderizar seu local. A tabela a seguir inclui alguns serviços de contêiner comuns.
Serviço | Descrição :--- | :--- Workspace | Contém todos os objetos que renderizam no mundo 3D, como peças e terreno. Lighting | Contém objetos para configurar efeitos de iluminação universais
Para examinar melhor o modelo de dados, você pode usar esses métodos:
- game:FindService() procura pela instância do serviço especificado.
- game:GetChildren() retorna um array de todos os filhos raiz do modelo de dados, que são os serviços de contêiner de nível superior.
- game:GetDescendants() retorna um array de todos os descendentes do modelo de dados, incluindo todos os serviços de contêiner e seus filhos.
Para mais informações sobre serviços de contêiner, consulte a modelo de dados documentação.
Serviços de Script
Scripting services fornecem funcionalidades padrão no motor do Roblox que você chama dentro dos scripts. A tabela a seguir inclui alguns serviços de script comuns.
Serviço | Descrição :--- | :--- Class.T
Serviços de Nuvem
O Roblox também oferece serviços de nuvem especiais para lidar com tarefas e processos que ocorrem na nuvem Roblox. A tabela a seguir inclui alguns serviços de nuvem comuns.
Serviço | Descrição :--- | :--- DataStoreService | Para armazenar dados persistentes entre sessões. MemoryStoreService | Para armazenar dados frequentes e efeitos que mudam rapidamente. MessagingService | Para comunicação entre vários servidores durante sessões ao vivo.
Os serviços da nuvem também têm APIs correspondentes; eles são acessíveis a partir de scripts ou ferramentas externos. Para mais informações, see Abrir Nuvem .