In Wiederverwendungscode könnten Sie die häufige Verwendung der Methode game:GetService() bemerkt haben.Roblox-Dienste ermöglichen den Zugriff auf integrierte Funktionen der Engine, wie das Verkaufen von In-Experience-Artikeln, das Aktivieren von Chat, das Wiedergeben von Sounds, das Animationieren von Objekten und das Verwalten von Instanzen.
In der Tat sind Dienste der erste Schritt in dem grundlegendsten, gemeinsamen Muster der Roblox-Entwicklung :
- Erhalte Dienste.
- Benötige Modul-Skripte.
- Füge lokale Funktionen hinzu.
- Füge die Ereignisse hinzu, die diese Funktionen auslösen.
Zum Beispiel möchten Sie vielleicht die Positionen der Spieler in der Welt speichern, wenn sie Ihre Erlebnisverlassen:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Lokale Funktion, die eine wiederverwendbare Funktion im Skript, das. PL: die Skriptsaufruft.
local function saveProgress(character)
-- Holen Sie sich die Position des Charakters des Spieler:in.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Verwende die saveData-Funktion im Skript, das. PL: die Skripts, das auf die schreibt
-- Datenspeicher-Service.
SaveManager.saveData(character, position)
end
-- Eine weitere lokale Funktion, die saveProgress() aufruft, wenn ein Zeichen entfernt wird
-- aus der erfahrung (in diesem fall, wenn der spieler geht).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Ruft onPlayerAdded auf, wenn ein Spieler sich zum ersten Mal mit dem Erlebnis verbindet.
Players.PlayerAdded:Connect(onPlayerAdded)
Einige wichtige Details umfassen:
- Da du nur einmal pro Skript, das. PL: die Skriptseinen Service abrufen solltest, ist es üblich, der Variable den gleichen Namen wie dem Service zu geben.Diese Konvention gilt auch für Modulskripte.
- Du rufst Dienste mit der globalen Variable game ab, einem Verweis auf die Wurzel des Modell.
- Roblox gibt keine Garantien bezüglich der Lade顺序 (und Instanzstreaming verkompliziert weiter, was zu jeder Zeit geladen wird und was nicht), so ist die Verwendung von Instance:WaitForChild() eine wichtige Sicherheitsmaßnahme.
Anstatt Standardbibliotheken zu vergleichen, globale Funktionen und Variablen oder Drittbibliotheken, ist ein großer Teil der Roblox-Entwicklung darin, zu identifizieren, welche der vielen, vielen Dienste Ihnen helfen können, die gewünschte Funktionalität zu Ihren Erlebnissen hinzuzufügen.Im oben genannten Beispiel verwenden Sie anstelle einer Standard-I/O-Bibliothek, um auf die Festplatte zu schreiben, Cloud-Services, um Daten zu speichern.
Containerdienste
Containerservices können andere Objekte enthalten und beeinflussen.Diese Containerdienste liegen in der Wurzel des Datenmodells und sind im Explorer-Fenster von Studio sichtbar.Zusammen bilden diese Containerdienste eine strukturierte Hierarchie für das Modell, so dass die Roblox-Engine deinen Ortrichtig interpretieren und rendern kann.Die folgende Tabelle enthält einige gemeinsame Containerdienste.
Service | Beschreibung :--- | :--- Workspace | Enthält alle Objekte, die in der 3D-Welt gerendert werden, wie Teile und Gelände. Lighting | Enthält Objekte zur Festlegung universeller Beleuchtungseffekte, wie Atmosphere und Sky . ReplicatedStorage und ReplicatedFirst | Enthalten Inhalte und Logik, die zwischen dem Server und dem Client repliziert werden.
Um das Modellweiter zu untersuchen, können Sie diese Methoden verwenden:
- game:FindService() sucht nach der instanz des angegebenen dienstes.
- game:GetChildren() gibt eine liste aller wurzelkindern des modellzurück, die die obersten containerdienste sind.
- game:GetDescendants() gibt eine liste aller nachkommen des modellzurück, einschließlich aller containerdienste und ihrer kinder.
Für weitere Informationen zu Containerservices siehe die Datenmodell-Dokumentation.
Skriptdienste
Skriptdienste bieten Standard-Funktionalität in der Roblox-Engine, die Sie innerhalb von Skripten aufrufen.Die folgende Tabelle enthält einige häufige Skriptdienste.
Service | Beschreibung :--- | :--- TweenService | Wird verwendet, um numerische Eigenschaften anderer Instanzen von einem Anfang bis zum Ende mit Optionen für Lockerung von Richtung und Stil, Wiederholung und Verzögerung zu interpolieren. MarketplaceService | Der Dienst, der für In-Experience-Transaktionen verantwortlich ist, wie das Auffordern des Spielers, ein Entwicklerprodukt, ein Abonnement oder einen Passzu kaufen, wird auf Roblox Premium aktualisiert, usw.ContextActionService | Ermöglicht es Ihnen, Benutzereingaben wie die Tastentaste drücken, den Bildschirm tippen oder die Knopfdrucktaste drücken mit kontextbezogenen Aktionen zu verknüpfen, wie die Änderung von Steuerelementen, wenn der Benutzer ein Auto betritt und verlässt. RunService | Enthält Methoden und Ereignisse für Frame-by-Frame-Zeitmanagement sowie für die Überprüfung des Kontextes (Server, Client, Studio-Modus), in dem die Erfahrung ausgeführt wird.Nützlich für den Betrieb eines Prozesses oder Updates auf jedem Laufzeitrahmen. | Steuert verschiedene globale Aspekte, wie Audio in einem Erlebnis wiedergegeben wird, wie z. B. die Doppler-Skala und das volumetrische Audiodateien.Kann auch Soundgruppen enthalten, um die Lautstärke- und Dynamikeffekte-Eigenschaften mehrerer Audiosignale gleichzeitig zu steuern. CollectionService | Verwaltet Gruppen (Sammlungen) von Instanzen mit Tags, die vom Server auf den Client repliziert werden, so dass Sie Gruppen von verwandten Instanzen leichter zuordnen und arbeiten können.
Wolkenservices
Roblox hat auch spezielle Cloud-Services für die Bearbeitung von Aufgaben und Prozessen, die in der Roblox-Cloud auftreten.Die folgende Tabelle enthält einige häufige Cloud-Services.
Service | Beschreibung :--- | :--- DataStoreService | Für das Speichern dauerhafter Daten über Sitzungen hinweg.MemoryStoreService | Für das Speichern häufiger und ephemerer Daten, die sich schnell ändern.|Für die Kommunikation zwischen mehreren Servern während Live-Sitzungen.
Cloud-Services haben auch entsprechende Web-APIs; sie sind von externen Skripten oder Tools zugänglich. Weitere Informationen finden Sie unter Öffentliche Cloud.