Servizi

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

In Reusing Code , potresti aver notato l'utilizzo frequente del metodo game:GetService() . I servizi Roblox ti consentono di accedere alle funzionalità integrate del motore, come la vendita di articoli in-esperienza, l'abilitazione della chat, il giocare suoni, l'animazione di oggetti e la gestione delle istanze.

In realtà, i servizi sono il primo passo in il più fondamentale, comune pattern di sviluppo di Roblox :

  1. Ottieni i servizi.
  2. Richiedono script del modulo.
  3. Aggiungi funzioni locali.
  4. Aggiungi i eventi che attivano queste 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 nel script del modulo.
local function saveProgress(character)
-- Ottieni la posizione del personaggio del Giocatore.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Usa la funzione saveData nel script del modulo, che scrive nel
-- DataStoreService.
SaveManager.saveData(character, position)
end
-- Un'altra funzione locale che chiama saveProgress() quando un personaggio viene rimosso
-- dall'esperienza (in questo caso, quando il giocatore lascia).
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 è 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 in torno all'ordine di caricamento (e streaming dell'istanza ulteriormente complica ciò che è e non è caricato in qualsiasi momento), quindi l'uso di Instance:WaitForChild() è un'importante misura di sicurezza.

Invece di confrontare librerie 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 sul disco, si utilizza servizi cloud per

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. In generale, questi servizi container formano 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.

Service | Description :--- | :--- Workspace | Contiene tutti gli oggetti che rendono nel Mondo3D, come parti e terreno. Lighting | Contiene oggetti per impostare effetti di illuminazione universali, come parti

Per ulteriori esami del modello di dati, puoi utilizzare questi metodi:

  • Class.DataModel:FindService()|game:FindService() ]] cerca la istanza del servizio specificato.
  • game:GetChildren() restituisce un array di tutti i figli della radice del modello di dati, che sono i servizi container di livello superiore.
  • game:GetDescendants() restituisce un array di tutti i discendenti del modello di dati, tra cui tutti i servizi container e i loro figli.

For more information on container services, see the modello di dati documentation.

Servizi di scripting

I servizi di scripting forniscono la funzionalità standard nel motore Roblox che chiami all'interno degli script. La seguente tabella include alcuni servizi di scripting comuni.

Service | Description :--- | :--- TweenService | Used to interpolate numeric properties of other instances from a start to end value, with options for easing direction and style, repeat, and delay. MarketplaceService | The service responsible for in-experience transactions, such as prompting the player to purchase a developer product, subscription, or game Passaggi di gioco, upgrade to Roblox Premium, etc. ContextActionService | All

Servizi cloud

Roblox ha anche servizi cloud speciali per la gestione delle attività e dei processi che si svolgono nel cloud Roblox. La seguente tabella include alcuni servizi cloud comuni.

Service | Description :--- | :--- DataStoreService | For storing persistent data across sessions. MemoryStoreService | For storing frequent and ephemeral data that change rapidly. MessagingService | For communicating between multiple servers during live sessions.

I servizi cloud hanno anche le API web corrispondenti; sono accessibili da script esterni o strumenti. Per ulteriori informazioni, vedi Aprire Cloud .