Engine-klasse
RunService
*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.
Samenvatting
Eigenschappen
Methoden
BindToAnimation(function: function,frequency: Enum.StepFrequency,priority: number):RBXScriptConnection |
BindToAnimationParallel(function: function,frequency: Enum.StepFrequency,priority: number):RBXScriptConnection |
BindToRenderStep(name: string,priority: number,function: function):() |
BindToSimulation(function: function,frequency: Enum.StepFrequency,priority: number):RBXScriptConnection |
BindToSimulationParallel(function: function,frequency: Enum.StepFrequency,priority: number):RBXScriptConnection |
GetPredictionStatus(context: Instance):Enum.PredictionStatus |
Pause():() |
Reset():() |
Run():() |
SetPredictionMode(context: Instance,mode: Enum.PredictionMode):() |
Stop():() |
UnbindFromRenderStep(name: string):() |
Evenementen
Heartbeat(deltaTime: number):RBXScriptSignal |
Misprediction(time: number,instances: {any},stats: Dictionary):RBXScriptSignal |
PostSimulation(deltaTimeSim: number):RBXScriptSignal |
PreAnimation(deltaTimeSim: number):RBXScriptSignal |
PreRender(deltaTimeRender: number):RBXScriptSignal |
PreSimulation(deltaTimeSim: number):RBXScriptSignal |
RenderStepped(deltaTime: number):RBXScriptSignal |
Rollback(time: number):RBXScriptSignal |
Stepped(time: number,deltaTime: number):RBXScriptSignal |
API-referentie
Eigenschappen
Methoden
BindToAnimation
RunService:BindToAnimation(
Parameters
| Standaardwaarde: Hz30 |
| Standaardwaarde: 2000 |
Teruggaves
BindToAnimationParallel
RunService:BindToAnimationParallel(
Parameters
| Standaardwaarde: Hz30 |
| Standaardwaarde: 2000 |
Teruggaves
BindToRenderStep
Teruggaves
()
Codevoorbeelden
Frame Bewegen in Cirkel
local RunService = game:GetService("RunService")
-- Hoe snel het frame zou moeten bewegen
local SPEED = 2
local frame = script.Parent
frame.AnchorPoint = Vector2.new(0.5, 0.5)
-- Een eenvoudige parametrische vergelijking van een cirkel
-- gecentreerd op (0.5, 0.5) met een straal van (0.5)
local function circle(t)
return 0.5 + math.cos(t) * 0.5, 0.5 + math.sin(t) * 0.5
end
-- Houd de huidige tijd bij
local currentTime = 0
local function onRenderStep(deltaTime)
-- Update de huidige tijd
currentTime = currentTime + deltaTime * SPEED
-- ...en de positie van het frame
local x, y = circle(currentTime)
frame.Position = UDim2.new(x, 0, y, 0)
end
-- Dit is gewoon een visueel effect, dus gebruik de "Last" prioriteit
RunService:BindToRenderStep("FrameCircle", Enum.RenderPriority.Last.Value, onRenderStep)
--RunService.RenderStepped:Connect(onRenderStep) -- Werkt ook, maar niet aanbevolenRunService Aangepaste Functie
local RunService = game:GetService("RunService")
local function checkDelta(deltaTime)
print("Tijd sinds laatste renderstap:", deltaTime)
end
RunService:BindToRenderStep("Controleer delta", Enum.RenderPriority.First.Value, checkDelta)Bind en Unbind een Functie
local RunService = game:GetService("RunService")
-- Stap 1: Declareer de functie en een naam
local NAME = "Print Hello"
local function printHello()
print("Hallo")
end
-- Stap 2: Bind de functie
RunService:BindToRenderStep(NAME, Enum.RenderPriority.First.Value, printHello)
-- Stap 3: Unbind de functie
RunService:UnbindFromRenderStep(NAME)BindToSimulation
RunService:BindToSimulation(
Parameters
| Standaardwaarde: Hz30 |
| Standaardwaarde: 2000 |
Teruggaves
Codevoorbeelden
Synchroniseren van de kleurproperty van een onderdeel
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local somePart:BasePart = Workspace:WaitForChild("Part")
RunService:BindToSimulation(function(deltaTime: number)
local syncdColor = Color3.fromHSV(math.fmod(time(), 1.0), 1.0, 1.0)
somePart:SetAttribute("SyncdColor", syncdColor)
end)
RunService.RenderStepped:Connect(function(deltaTime: number)
local syncdColor = somePart:GetAttribute("SyncdColor")
somePart.Color = syncdColor
end)BindToSimulationParallel
RunService:BindToSimulationParallel(
Parameters
| Standaardwaarde: Hz30 |
| Standaardwaarde: 2000 |
Teruggaves
GetPredictionStatus
Parameters
Teruggaves
Pause
RunService:Pause():()
Teruggaves
()
Reset
Run
RunService:Run():()
Teruggaves
()
SetPredictionMode
Parameters
Teruggaves
()
Stop
RunService:Stop():()
Teruggaves
()
Evenementen
Misprediction
Parameters
Codevoorbeelden
Mispredictie
local RunService = game:GetService("RunService")
RunService.Misprediction:Connect(function(time, instances, stats)
print(`Mispredictie op t={time}, resimulatie={stats.ResimulationTime}s`)
for _, entry in instances do
print(` Instance: {entry.Instance:GetFullName()}`)
if entry.Properties then
for name, values in entry.Properties do
print(` Eigenschap '{name}': voorspeld={values.Predicted}, autoritatief={values.Authoritative}`)
end
end
if entry.Attributes then
for name, values in entry.Attributes do
print(` Attribuut '{name}': voorspeld={values.Predicted}, autoritatief={values.Authoritative}`)
end
end
end
end)PostSimulation
PreAnimation
PreRender
PreSimulation
Rollback
Parameters
Codevoorbeelden
Rollback
local RunService = game:GetService("RunService")
local stateHistory = {} -- jouw aangepaste staat bijgehouden per vaste stap
RunService.Rollback:Connect(function(time)
-- Verwerp elke aangepaste staat die nieuwer is dan de teruggedraaide stap
-- en herstel de staat op die stap voordat de hersimulatie begint
for step, _ in stateHistory do
if step > time then
stateHistory[step] = nil
end
end
end)Stepped