DataModel
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Die Datenmodell (gewöhnlich als game nach der globalen Variable, die darauf zugreift) ist die Wurzel der Roblox-Eltern- und Kinderserie. Seine direkten Kinder sind Dienste, wie Workspace und 2>Class.Lighting2>, die als grundlegende Komponenten eines Roblox-Spiels agieren.
Code-Beispiele
local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
-- Examples of modifying properties of these services
Workspace.Gravity = 20
Lighting.ClockTime = 4
Zusammenfassung
Eigenschaften
Beschreibt die ID des Benutzers oder der Gruppe, die den Ort besitzt.
Beschreibt die Enum.CreatorType des Ortes, ob der Ort von einem Benutzer oder einer Gruppe besessen ist.
Beschreibt die ID der Erfahrung, zu der der Ort, auf dem der Server läuft, gehört.
Funktioniert nicht. Hat historisch beschrieben, dass die Enum.Genre des Ortes auf der Roblox-Website als festgelegt eingestellt.
Eine eindeutige Kennung für den laufenden Spielserver-Instanz.
Beschreibt die ID des auf dem Server ausgeführten Ortes.
Beschreibt die Version des Ortes, auf dem der Server ausgeführt wird.
Beschreibt die private Server-ID des Servers, wenn der Server ein privater Server ist oder ein reserved server .
Beschreibt die UserId des Player, der den privaten Server besitzt, wenn der Server privater Serverist.
Eine Verweisung auf den Workspace Dienst.
Methoden
Bindet eine Funktion, die vor dem Server-Shutdown aufgerufen werden soll.
Kehre eine Tabelle zurück, die grundlegende Informationen über die Jobs zurückgibt, die von der Aufgabenplaner-Task durchgeführt werden.
Gibt eine Liste von Instances mit der mit der angegebenen Inhalts-URL verbundenen Arrays zurück.
Kehrt wahr zurück, wenn der Client das Spiel zum ersten Mal geladen hat.
Setzt die DataModel.PlaceId der aktuellen Spielinstanz auf den angegebenen placeId.
Setzt die DataModel.GameId der aktuellen Spielinstanz auf die angegebene universeId.
Gibt den angegebenen Namen zurück, wenn er bereits erstellt wurde, Fehler für einen ungültigen Namen.
Gibt den Dienst mit dem angeforderten Klassen-Namen zurück, der ihn erstellt, wenn er nicht existiert.
Ereignisse
Feuert, wenn der Benutzer anfordert und die Grafikqualität mit den Hotkeys erhöht oder senkt.
Feuert auf dem Client ab, wenn das Spiel das Laden zum ersten Mal beendet hat.
Feuert, wenn der aktuelle Ort verlassen wird.
Wenn ein Service erstellt wird.
Wenn ein Service entfernt werden soll, wurde abgefeuert.
Eigenschaften
CreatorId
Dieses Eigenschaft beschreibt die ID des Benutzers oder der Gruppe, die den Ort besitzt. Wenn die Eigenschaft DataModel.CreatorType ist, wird CreatorId der Class.Player.UserId des Platzes's Eigentümersein. Wenn die Eigenschaft Player.UserId ist, wird CreatorId die
Code-Beispiele
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
if game.CreatorType == Enum.CreatorType.User then
if player.UserId == game.CreatorId then
print("The place owner has joined the game!")
end
elseif game.CreatorType == Enum.CreatorType.Group then
if player:IsInGroup(game.CreatorId) then
print("A member of the group that owns the place has joined the game!")
end
end
end)
CreatorType
Dieses Eigenschaft beschreibt die Enum.CreatorType des Ortes, ob der Ort von einem Benutzer oder einer Gruppe besessen wird.
Wenn der Enum.CreatorType der Eigenschaft Class.Player.UserId|userId der Konto, das das Spiel besitzt, beschreibt die Eigenschaft DataModel.CreatorId die Gruppe, die den Spielbesitzern zuordnet. Wenn der CreatorType 2>Group'2> ist, wird die Gruppen-ID beschrieben.
Code-Beispiele
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
if game.CreatorType == Enum.CreatorType.User then
if player.UserId == game.CreatorId then
print("The place owner has joined the game!")
end
elseif game.CreatorType == Enum.CreatorType.Group then
if player:IsInGroup(game.CreatorId) then
print("A member of the group that owns the place has joined the game!")
end
end
end)
GameId
Dieses Eigenschaft beschreibt die ID des Erlebnisses, zu dem der Ort, auf dem der Server läuft, gehört.
Diese ID kann in der oberen rechten Ecke des Asset-Managers in Roblox Studio gefunden werden. Wenn Sie Roblox Studio verwenden, wenn der Ort nicht veröffentlicht wurde, dann wird die GameId mit dem verwendeten Vorlage übereinstimmen.
Siehe auch:
- DataModel.PlaceId , die die ID des Ortes beschreibt, der auf dem Server ausgeführt wird
- DataModel.JobId , die eine eindeutige Kennung für die Server-Spielinstanz ist, die ausgeführt wird
- TeleportService , der ein Service ist, der Players zwischen Spielen transportieren kann
Genre
Diese Eigenschaft ist kaputt und sollte nicht verwendet werden.
Diese Eigenschaft beschrieb historisch die Enum.Genre des Ortes als auf der Roblox-Website festgelegt.
Diese Eigenschaften, zusammen mit DataModel.GearGenreSetting , funktioniert nicht mehr richtig, da Genres, die auf der Roblox-Website vorhanden sind, die nicht in der Enum.Genre -Liste reflektiert werden. Ergebniskann das Versuchen, diese Eigenschaft zu lesen, einen Fehler anzeigen.
JobId
Diese Eigenschaft ist eine eindeutige Kennung für den laufenden Spielserver-Instanz. Es ist ein universell einzigartiger Identifikator (UUID), was bedeutet, dass keine zwei Server, von der Vergangenheit oder der Gegenwart, jemals die gleiche ID haben.
Standard für eine leere Zeichenkette in Studio.
Siehe auch
- TeleportService:GetPlayerPlaceInstanceAsync() mit dem man den DataModel.JobId eines Benutzers aktuellen Servers wiederrufen kann.
- TeleportService:TeleportToPlaceInstance() welche verwendet werden kann, um einen Player zu einem bestimmten Server zu teleportieren.
- DataModel.PrivateServerId beschreibt die ID des privaten Servers, zu dem die Spielserver-Instanz gehört.
- HttpService:GenerateGUID() , eine Funktion, die verwendet werden kann, um Ihre eigenen UUIDs zu generieren.
PlaceId
Dieses Eigenschaft beschreibt die ID des Ortes, der auf dem Server ausgeführt wird.
Wenn der Ort in Roblox veröffentlicht wurde, kann diese ID im Asset-Manager von Studio durch Klicken mit der rechten Maustaste auf den Ort innerhalb der Orte-Ordner und Auswahl ID kopieren in Zwischenablage gefunden werden.
Wenn der Ort nicht in Roblox veröffentlicht wurde, wird diese ID mit dem verwendeten Vorlage übereinstimmen.
Siehe auch
- DataModel.GameId , die die ID der Erfahrung beschreibt, zu der der aktuelle Ort gehört
- DataModel.JobId , die eine eindeutige Kennung für die Server-Spielinstanz ist, die ausgeführt wird
- TeleportService , der ein Service ist, der verwendet werden kann, um Players zwischen Orten zu transportieren
PlaceVersion
Dieses Eigenschaft beschreibt die Version des Ortes, auf dem der Server ausgeführt wird.
Diese Versionennummer entspricht der Versionennummer, die unter der Versionsgeschichte -Sektion der Einstellungen des Ortes angezeigt wird. Es ist nicht die aktuelle Version des Roblox-Clients. Diese Eigenschaft ist 0 für alle nicht veröffentlichten Erlebnisse.
Wenn eine Server-Instanz für einen Ort erstellt wird, verwendet sie die aktuelle Version des Ortes. Wenn der Ort später aktualisiert wird, während dieses Servers läuft, wird der Server in seiner aktuellen Version bleiben.
Dieses Eigenschaft kann verwendet werden, um ein ScreenGui anzuzeigen, das die aktuelle Version des Spiels an Players anzeigt, um mit dem Debugging zu helfen.
Code-Beispiele
local StarterGui = game:GetService("StarterGui")
local versionGui = Instance.new("ScreenGui")
local textLabel = Instance.new("TextLabel")
textLabel.Position = UDim2.new(1, -10, 1, 0)
textLabel.AnchorPoint = Vector2.new(1, 1)
textLabel.Size = UDim2.new(0, 150, 0, 40)
textLabel.BackgroundTransparency = 1
textLabel.TextColor3 = Color3.new(1, 1, 1)
textLabel.TextStrokeTransparency = 0
textLabel.TextXAlignment = Enum.TextXAlignment.Right
textLabel.TextScaled = true
local placeVersion = game.PlaceVersion
textLabel.Text = string.format("Server version: %s", placeVersion)
textLabel.Parent = versionGui
versionGui.Parent = StarterGui
PrivateServerId
Diese Eigenschaft beschreibt die private Server-ID des Servers, wenn der Server ein privater Server ist.
Wenn der Server kein privater Server ist, dann ist diese Eigenschaft eine leere String.
Private Server
Private Server beziehen sich auf das gefolgte Profile:
- Private Server, die Benutzer von der Spieleseite kaufen können
- Reservierte Server, private Server, die der Entwickler mit TeleportService:ReserveServer()
PrivateServerId vs JobId
Die PrivateServerId eines Servers ist von der DataModel.JobId . Die JobId ist die eindeutige Kennung der aktuellen Server-Instanz.
Private Server (private oder reservierte Server) können mehrere Server-Instanzen haben, die mit ihnen im Laufe der Zeit verbunden sind. Dies ist, da ein nur ein Server-Instanz gleichzeitig für einen privaten Server ausgeführt werden kann, aber neue Server-Instanzen öffnen und schließen, wenn Spieler dem Spiel beitreten und verlassen. Zum Beispiel ist keine Server-Instanz ausgewählt, wenn niemand auf dem Server spielt. Die PrivateServerId ist für jeden dieser Server ein
Siehe auch:
- DataModel.PrivateServerOwnerId , eine Eigenschaft, die den Besitzer eines privaten Servers beschreibt
- TeleportService:ReserveServer() , eine Funktion, die einen reservierten Server erstellt
Code-Beispiele
local function getServerType()
if game.PrivateServerId ~= "" then
if game.PrivateServerOwnerId ~= 0 then
return "VIPServer"
else
return "ReservedServer"
end
else
return "StandardServer"
end
end
print(getServerType())
PrivateServerOwnerId
Dieses Eigenschaftsbeschreibung des UserId des Player , der den privaten Server besitzt, wenn der Server privater Serverist.
Wenn der Server ein Standard- oder Reserver-Server ist, wird diese Eigenschaft auf 0 gesetzt.
Diese Eigenschaft könnte verwendet werden, um zu identifizieren, ob ein Player der Besitzer des privaten Servers ist, z. B.:
local Players = game:GetService("Players")
-- ist das ein privater server?
if game.PrivateServerId ~= "" and game.PrivateServerOwnerId ~= 0 then
-- neue spieler hinzugefügt
Players.PlayerAdded:Connect(function(player)
-- überprüfen, ob der spieler der eigentümerist
if player.UserId == game.PrivateServerOwnerId then
print("The private server owner has joined the game")
end
end)
end
Siehe auch:
- DataModel.PrivateServerId , eine Eigenschaft, die die einzigartige ID von privaten und reserved servers
Code-Beispiele
local function getServerType()
if game.PrivateServerId ~= "" then
if game.PrivateServerOwnerId ~= 0 then
return "VIPServer"
else
return "ReservedServer"
end
else
return "StandardServer"
end
end
print(getServerType())
Workspace
Die Workspace-Eigenschaft ist eine Verweisung auf den Workspace -Dienst.
Diese Eigenschaft wird immer auf das Workspace zeigen und wird nie Null sein.
Der Workspace kann auch über die globale Variable workspace und die Funktion ServiceProvider:GetService() aufgerufen werden. Zum Beispiel:
workspace -- eine globale variablegame.Workspace -- eine Eigenschaft des DataModel (Spiel)game:GetService("Workspace") -- workspace is a service
Methoden
BindToClose
Bindet eine Funktion, die vor dem Server-Shutdown aufgerufen werden soll. Wenn die gebundene Funktion ein Parameter annehmen kann, übermittelt sie Enum.CloseReason, der den Grund für den Server-Shutdown angibt.
Sie können mehrere Funktionen binden, indem Sie BindToClose() mehrmals aufrufen. Bound-Funktionen werden parallel aufgerufen und laufen gleichzeitig.
Der Erlebnisse-Server wartet 30 Sekunden, bevor alle gebundenen Funktionen aufhören zu laufen, bevor er heruntergefahren wird. Nach 30 Sekunden schaltet der Server auch ab, wenn die Funktionen immer noch ausgeführt werden.
Um zu überprüfen, dass die aktuelle Sitzung nicht in Roblox Studio ist, verwenden Sie RunService:IsStudio() . Dies verhindert, dass gebundene Funktionen in offline-Test-Sitzungen abgeschlossen werden.
Wenn Sie DataStoreService verwenden, sollten Sie auch BindToClose verwenden, um eine Funktion zu binden, die alle nicht gespeicherten Daten in DataStores speichert. Dies verhindert die Datenverlust, wenn der Server unerwartet heruntergefahren wird.
Siehe auch:
- Enum.CloseReason aus Gründen für den Erhalt des Erlebnisservers.
- PluginGui:BindToClose() , das eine Funktion an einen PluginGui Schaltfläche bindet, um sie zu schließen.
Parameter
Eine Funktion, die vor dem Erlebnissерver-Shutdown aufgerufen wird. Wenn die gebundene Funktion ein Parameter annehmen kann, übermittelt sie Enum.CloseReason , der den Grund für den Server-Shutdown angibt.
Rückgaben
Code-Beispiele
local DataStoreService = game:GetService("DataStoreService")
local RunService = game:GetService("RunService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
local allPlayerSessionDataCache = {}
local function savePlayerDataAsync(userId, data)
return playerDataStore:UpdateAsync(userId, function(oldData)
return data
end)
end
local function onServerShutdown(closeReason)
if RunService:IsStudio() then
-- Avoid writing studio data to production and stalling test session closing
return
end
-- Reference for yielding and resuming later
local mainThread = coroutine.running()
-- Counts up for each new thread, down when the thread finishes. When 0 is reached,
-- the individual thread knows it's the last thread to finish and should resume the main thread
local numThreadsRunning = 0
-- Calling this function later starts on a new thread because of coroutine.wrap
local startSaveThread = coroutine.wrap(function(userId, sessionData)
-- Perform the save operation
local success, result = pcall(savePlayerDataAsync, userId, sessionData)
if not success then
-- Could implement a retry
warn(string.format("Failed to save %d's data: %s", userId, result))
end
-- Thread finished, decrement counter
numThreadsRunning -= 1
if numThreadsRunning == 0 then
-- This was the last thread to finish, resume main thread
coroutine.resume(mainThread)
end
end)
-- This assumes playerData gets cleared from the data table during a final save on PlayerRemoving,
-- so this is iterating over all the data of players still in the game that hasn't been saved
for userId, sessionData in pairs(allPlayerSessionDataCache) do
numThreadsRunning += 1
-- This loop finishes running and counting numThreadsRunning before any of
-- the save threads start because coroutine.wrap has built-in deferral on start
startSaveThread(userId, sessionData)
end
if numThreadsRunning > 0 then
-- Stall shutdown until save threads finish. Resumed by the last save thread when it finishes
coroutine.yield()
end
end
game:BindToClose(onServerShutdown)
game:BindToClose(function(closeReason)
print(`Closing with reason {closeReason}`)
task.wait(3)
print("Done")
end)
GetJobsInfo
Kehre eine Tabelle zurück, die grundlegende Informationen über die Jobs zurückgibt, die von der Aufgabenplaner-Task durchgeführt werden.
In der Computierung ist ein Aufgabenplaner ein System, das die entsprechenden Zeitpläne für die Ausführung von Schlüsselaufgaben festlegt.
Sie können auch live task scheduler statistiken in dem task scheduled window in Roblox Studiofinden.
Die erste Eintrag in der Tabelle, die zurückgegeben wird, ist ein Referenzbuch mit den verfügbaren Statistiken (oder Üerschriften). Es ist in der folgenden格式:
{["name"] = "name",["averageDutyCycle"] = "averageDutyCycle",["averageStepsPerSecond"] = "averageStepsPerSecond",["averageStepTime"] = "averageStepTime",["averageError"] = "averageError",["isRunning"] = "isRunning",}
Die folgenden Einreichungen in der Tabelle, die zurückgegeben werden, sind Diktionen, die die oben genannten Statistiken für Jobs enthalten, die von der Aufgabenplaner ausgeführt werden. Zum Beispiel:
{["name"] = "Heartbeat",["averageDutyCycle"] = 0,["averageStepsPerSecond"] = 0,["averageStepTime"] = 0,["averageError"] = 0,["isRunning"] = false,}
Siehe auch:
Rückgaben
Eine Tabelle, die Informationen über die Jobs enthält, die von der Aufgabenplaner erledigt werden, siehe oben für das Format.
Code-Beispiele
local jobInfo = game:GetJobsInfo()
local jobTitles = jobInfo[1]
table.remove(jobInfo, 1)
local divider = string.rep("-", 120)
print(divider)
warn("JOB INFO:")
print(divider)
for _, job in pairs(jobInfo) do
for jobIndex, jobValue in pairs(job) do
local jobTitle = jobTitles[jobIndex]
warn(jobTitle, "=", jobValue)
end
print(divider)
end
GetObjects
Diese Methode gibt ein Array von Instances mit der mit der angegebenen Inhalts-URL verbundenen zurück. Es kann verwendet werden, um Inhalte aus der Roblox-Bibliothek einzufügen. Es ist nicht möglich, Inhalte mit diesem Methode einzufügen, da sie keine Sounds mit ihnen haben und nur eine Inhalts-URL haben.
Anders als InsertService:LoadAsset() , DataModel:GetObjects() erfordert keine Asset, die "vertrauenswürdig" ist, was bedeutet, dass ein Asset nicht vom anmeldebenutzereigen sein muss, oder von Roblox erstellt werden muss, um eingefügt zu werden. Wenn das Asset jedoch nicht vom anmeldebenutzer erworben wurde, muss es frei verfügbar sein.
Aufgrund des Sicherheitskontextes dieser Funktion kann sie nur von Plugins oder der Kommandoleiste verwendet werden. Für eine alternative, die in Scripts und LocalScripts verwendet werden kann, siehe InsertService:LoadAsset().
Parameter
Die angegebene Content-URL.
Rückgaben
Ein Array von Instances mit der Inhalts-URL.
Code-Beispiele
local Selection = game:GetService("Selection")
local WEB_URL = "plugin URL here"
local function downloadPlugin(webURL)
-- get the content URL
local contentID = string.match(webURL, "%d+")
local contentURL = "rbxassetid://" .. contentID
-- download the objects
local objects = game:GetObjects(contentURL)
-- decide where to parent them
local selection = Selection:Get()
local parent = #selection == 1 and selection[1] or workspace
-- parent the objects
for _, object in pairs(objects) do
object.Parent = parent
end
end
downloadPlugin(WEB_URL)
local IMAGES = {
-- Insert Decal web URLs in an array here (as strings)
}
-- open the dictionary
local outputString = "textures = {"
-- utility function to add a new entry to the dictionary (as a string)
local function addEntryToDictionary(original, new)
outputString = outputString
.. "\n" -- new line
.. " " -- indent
.. '["'
.. original
.. '"]' -- key
.. ' = "'
.. new
.. '",' -- value
end
print("Starting conversion")
for _, webURL in pairs(IMAGES) do
-- get the content URL
local contentID = string.match(webURL, "%d+")
local contentURL = "rbxassetid://" .. contentID
local success, result = pcall(function()
local objects = game:GetObjects(contentURL)
return objects[1].Texture
end)
if success then
addEntryToDictionary(webURL, result)
else
addEntryToDictionary(webURL, "Error downloading decal")
end
task.wait()
end
print("Conversion complete")
-- close the dictionary
outputString = outputString .. "\n}"
-- print the dictionary
print(outputString)
IsLoaded
Diese Funktion kehrt wahr zurück, wenn der Client das Spiel zum ersten Mal geladen hat.
Wenn alle ursprünglichen Instances im Spiel fertiggestellt sind, hat diese Funktion wahrheits wie zurückgegeben.
Es sei denn, sie sind mit ReplicatedFirst verbunden, LocalScripts wird nicht ausgeführt, während das Spiel nicht geladen ist. Das folgende Snippet, ausgeführt von einem LocalScript in 1>Class.ReplicatedFirst1>, wird ausgeführt, bis das Spiel geladen ist:
if not game:IsLoaded() thengame.Loaded:Wait()end
Siehe auch:
- DataModel.Loaded , ein Ereignis, das ausgeführt wird, wenn das Spiel geladen ist
- Instance:WaitForChild() , eine Funktion, die verwendet werden kann, um auf einzelne Instance zu warten, ohne auf das gesamte Spiel zu warten, um
Rückgaben
Ob der Client das Spiel zum ersten Mal geladen hat.
Code-Beispiele
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create a basic loading screen
local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.GothamMedium
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Loading"
textLabel.TextSize = 28
textLabel.Parent = screenGui
-- Parent entire screen GUI to player GUI
screenGui.Parent = playerGui
-- Remove the default loading screen
ReplicatedFirst:RemoveDefaultLoadingScreen()
--wait(3) -- Optionally force screen to appear for a minimum number of seconds
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()
SetPlaceId
Diese Funktion setzt die DataModel.PlaceId der Spielinstanz auf den angegebenen PlatzId fest.
Um Zugriff auf DataModel.PlaceId zu erhalten, wenn der Ort nicht veröffentlicht wird, müssen beide DataModel.GameId und DataStoreService Zugriff auf den Z
local DataStoreService = game:GetService("DataStoreService")-- Zugriff auf Datenspeicher "Daten" durch Festlegung von PlaceId auf placeId und GameId auf universeId.game:SetPlaceId(placeId)game:SetUniverseId(universeId)local dataStore = DataStoreService:GetDataStore("Data")
Parameter
Die ID, um das DataModel.PlaceId zu setzen.
Rückgaben
SetUniverseId
Diese Funktion setzt die DataModel.GameId der aktuellen Spielinstanz auf die angegebene universeId fest. Dies ist nützlich, wenn Sie lokale .rbxl-Dateien testen, die nicht veröffentlicht wurden, um Roblox.
Um auf einen nicht veröffentlichten Ort auf den Zugriff auf den DataStoreService zuzugreifen, müssen sowohl Class.DataModel:SetUniverseId() als auch Class.DataModel:SetPlaceId() festlegensein.
Parameter
Die ID, um das DataModel.GameId zu setzen.
Rückgaben
Ereignisse
GraphicsQualityChangeRequest
Feuert, wenn der Benutzer eine Erhöhung oder einen Rückgang der Grafikqualität mit den Hotkeys anordnet.
Dieses Ereignis wird unter den folgenden Bedingungen ausgelöst:
- Wenn der Benutzer auf F10 drückt, wird dieses Ereignis mit einem betterQuality -Argument von true ausgelöst.
- Wenn der Benutzer ShiftF10 drückt, wird dieses Ereignis mit einem betterQuality-Argument von 0> false0> ausgelöst.
Dieses Ereignis bietet nicht die aktuelle Grafikqualitätsstufe oder bedeckt nicht alle Updates zur Grafikqualität. Zum Beispiel werden Änderungen, die im Kern-GUI-Entkommen-Menü vorgenommen wurden, nicht registriert.
Du kannst die Enum.SavedQualitySetting eines Benutzers mit dem folgenden Snippet abrufen:
UserSettings():GetService("UserGameSettings").SavedQualityLevel
Wenn die Grafikseinstellungen des Benutzers auf automatisch eingestellt sind, dann ist die Enum.SavedQualitySetting der Automatic . Es gibt derzeit keine Möglichkeit für Entwickler, die aktuelle Grafikqualitätstufe eines Benutzers zuverlässig zu erhalten.
Parameter
Ob der Benutzer eine Erhöhung ( wahr ) oder eine Verringerung ( falsch ) in der Grafikqualität angegeben hat.
Code-Beispiele
game.GraphicsQualityChangeRequest:Connect(function(betterQuality)
if betterQuality then
print("The user has requested an increase in graphics quality!")
else
print("The user has requested a decrease in graphics quality!")
end
end)
Loaded
Dieses Ereignis wird auf dem Client ausgelöst, wenn das Spiel zum ersten Mal geladen wird.
Das Loaded-Ereignis wird ausgelöst, wenn alle ursprünglichen Instances im Spiel fertiggestellt haben, die Replikation auf den Client abgeschlossen haben.
Es sei denn, sie sind mit ReplicatedFirst verbunden, LocalScripts wird nicht ausgeführt, bevor dieses Ereignis feuert. Das folgende Snippet, das von einem LocalScript in 1>Class.ReplicatedFirst1> ausgeführt wird, wird bis zum Laden des Spiels ausgeführt:
if not game:IsLoaded() thengame.Loaded:Wait()end
Siehe auch:
- DataModel:IsLoaded() , eine Funktion, die zurückgibt, ob das Spiel geladen wird oder nicht
- Instance:WaitForChild() , eine Funktion, die verwendet werden kann, um auf einzelne Instance zu warten, ohne auf das gesamte Spiel zu warten, um zu laden.