In Riutilizzo del codice, potresti aver notato un uso frequente del metodo game:GetService().I servizi di Roblox ti consentono di accedere alle funzionalità integrate del motore, come la vendita di articoli in-esperienza, l'attivazione della chat, il suono di riproduzione, l'animazione degli oggetti e la gestione delle istanze.
In effetti, i servizi sono il primo passo nel modello più fondamentale e comune di sviluppo di Roblox :
- Ottieni servizi.
- Richiedi gli script del modulo.
- Aggiungi funzioni locali.
- Aggiungi gli eventi che attivano quelle funzioni.
Ad esempio, potresti voler salvare le posizioni dei giocatori nel mondo quando escono dalla tua esperienza:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Funzione locale che chiama una funzione riutilizzabile nello script del modulo.
local function saveProgress(character)
-- Ottieni la posizione del personaggio del Giocatore.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Usa la funzione saveData nello script del modulo, che scrive nel
-- DataStoreService.
SaveManager.saveData(character, position)
end
-- Un'altra funzione locale che chiama saveProgress() quando viene rimosso un personaggio
-- dalla esperienza (in questo caso, quando il giocatore esce).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Chiama onPlayerAdded quando un giocatore si connette per la prima volta all'esperienza.
Players.PlayerAdded:Connect(onPlayerAdded)
Alcuni dettagli chiave includono:
- Poiché devi recuperare un servizio solo una volta per script, la convenzione è quella di dare alla variabile lo stesso nome del servizio.Questa convenzione si applica anche agli script del modulo.
- Recuperi i servizi con la variabile globale game, un riferimento alla radice del modello di dati.
- Roblox non fornisce garanzie attorno all'ordine di caricamento (e lo streaming dell'istanza rende ulteriormente complicato ciò che viene caricato in qualsiasi momento), quindi l'uso di è una misura di sicurezza importante.
Piuttosto che confrontare biblioteche standard, funzioni globali e variabili, o librerie di terze parti, una grande parte dello sviluppo di Roblox è identificare quale dei molti, molti servizi può aiutarti ad aggiungere la funzionalità desiderata alle tue esperienze.Nell'esempio sopra, invece di utilizzare una libreria I/O standard per scrivere su disco, utilizzi servizi cloud per archiviare i dati.
Servizi container
I servizi container possono contenere e influenzare altri oggetti.Questi servizi container risiedono alla radice del modello di dati e sono visibili nella finestra Explorer di Studio.Insieme, questi servizi container costituiscono una gerarchia strutturata per il modello di dati, in modo che il motore Roblox possa interpretare e rendere correttamente il tuo Posto.La seguente tabella include alcuni servizi container comuni.
Servizio | Descrizione :--- | :--- Workspace | Contiene tutti gli oggetti che rendono nel Mondo3D, come parti e terreno.Lighting | Contiene oggetti per impostare effetti di illuminazione universali, come Atmosphere e Sky . ReplicatedStorage e ReplicatedFirst | Contengono contenuto e logica che si replica tra il server e il client.
Per esaminare ulteriormente il modello di dati, puoi usare questi metodi:
- game:FindService() cerca l'istanza del servizio specificato.
- game:GetChildren() restituisce un array di tutti i figli radice del modello di dati, che sono i servizi container di alto livello.
- game:GetDescendants() restituisce un array di tutti i discendenti del modello di dati, inclusi tutti i servizi container e i loro figli.
Per maggiori informazioni sui servizi container, vedi la documentazione del modello di dati data model.
Servizi di scripting
I servizi di scripting forniscono una funzionalità standard nell'ambito del motore Roblox che chiami all'interno degli script.La seguente tabella include alcuni servizi di script comuni.
Servizio | Descrizione :--- | :--- TweenService | Utilizzato per interpolare le proprietà numeriche di altre istanze da un valore dall'inizio alla fine, con opzioni per facilitare la direzione e lo stile, ripetere e ritardare. MarketplaceService | Il servizio responsabile delle transazioni in-experience, come richiedere al giocatore di acquistare un prodotto per sviluppatori, un abbonamento o un game Passaggi di gioco, aggiornamento a Roblox Premium, ecc. ContextActionService | Ti consente di associare l'input dell'utente, come una Stamparedi tasti, un tocco dello schermo o un tocco del pulsante del controller, alle azioni contestuali, come la modifica dei controlli quando l'utente entra e esce da un'auto.RunService | Contiene metodi e eventi per la gestione del tempo frame-by-frame, nonché per il controllo del contesto (Server, client, modalità Studio) in cui l'esperienza è in esecuzione.Utile per eseguire qualsiasi processo o aggiornamento su ogni runtime frame.SoundService | Controlla vari aspetti globali di come l'audio si riproduce in un'esperienza, come la scala di Doppler e l'audio volumetrico.Può anche contenere gruppi sonori per controllare le proprietà di volume e effetti dinamici di più segnali audio contemporaneamente.CollectionService | Gestisce gruppi (collezioni) di istanze con tag che si replicano dal server al client, ti permettendo di assegnare e lavorare più facilmente con gruppi di istanze correlate.
Servizi cloud
Roblox ha anche servizi cloud speciali per gestire le attività e i processi che si svolgono nel cloud Roblox.La seguente tabella include alcuni servizi cloud comuni.
Servizio | Descrizione :--- | :--- DataStoreService | Per memorizzare dati persistenti attraverso le sessioni.MemoryStoreService | Per il deposito di dati frequenti e temporanei che cambiano rapidamente.MessagingService | Per comunicare tra più server durante le sessioni dal vivo.
I servizi cloud hanno anche API web corrispondenti; sono accessibili da script o strumenti esterni. Per ulteriori informazioni, vedi Apri cloud.