Serviços

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

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 :

  1. Obter serviços.
  2. Requer scripts de módulo.
  3. Adicionar funções locais.
  4. 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 .