Engine Class
RunService
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
สรุป
คุณสมบัติ
วิธีการ
BindToRenderStep(name: string,priority: number,function: function):() |
BindToSimulation(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):() |
เหตุการณ์
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
คุณสมบัติ
วิธีการ
BindToRenderStep
ส่งค่ากลับ
()
ตัวอย่างโค้ด
กรอบเคลื่อนที่เป็นวงกลม
local RunService = game:GetService("RunService")
-- ความเร็วที่กรอบควรเคลื่อนที่
local SPEED = 2
local frame = script.Parent
frame.AnchorPoint = Vector2.new(0.5, 0.5)
-- สมการพารามิเตอร์ง่ายๆ ของวงกลม
-- ที่อยู่กลางที่ (0.5, 0.5) มีรัศมี (0.5)
local function circle(t)
return 0.5 + math.cos(t) * 0.5, 0.5 + math.sin(t) * 0.5
end
-- ติดตามเวลาปัจจุบัน
local currentTime = 0
local function onRenderStep(deltaTime)
-- อัปเดตเวลาในปัจจุบัน
currentTime = currentTime + deltaTime * SPEED
-- ...และตำแหน่งของกรอบ
local x, y = circle(currentTime)
frame.Position = UDim2.new(x, 0, y, 0)
end
-- นี่เป็นเพียงเอฟเฟกต์ภาพ ดังนั้นให้ใช้ความสำคัญ "Last"
RunService:BindToRenderStep("FrameCircle", Enum.RenderPriority.Last.Value, onRenderStep)
--RunService.RenderStepped:Connect(onRenderStep) -- ก็ใช้ได้ แต่ไม่แนะนำฟังก์ชันที่กำหนดเองของ RunService
local RunService = game:GetService("RunService")
local function checkDelta(deltaTime)
print("เวลาที่ผ่านมา depuis ขั้นตอนการเรนเดอร์ครั้งล่าสุด:", deltaTime)
end
RunService:BindToRenderStep("ตรวจสอบ delta", Enum.RenderPriority.First.Value, checkDelta)ผูกและยกเลิกฟังก์ชัน
local RunService = game:GetService("RunService")
-- ขั้นตอนที่ 1: ประกาศฟังก์ชันและชื่อ
local NAME = "พิมพ์สวัสดี"
local function printHello()
print("สวัสดี")
end
-- ขั้นตอนที่ 2: ผูกฟังก์ชัน
RunService:BindToRenderStep(NAME, Enum.RenderPriority.First.Value, printHello)
-- ขั้นตอนที่ 3: ยกเลิกฟังก์ชัน
RunService:UnbindFromRenderStep(NAME)BindToSimulation
RunService:BindToSimulation(
พารามิเตอร์
| ค่าเริ่มต้น: "Hz30" |
| ค่าเริ่มต้น: 2000 |
ส่งค่ากลับ
ตัวอย่างโค้ด
การซิงโครไนซ์คุณสมบัติสีของชิ้นส่วน
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)GetPredictionStatus
พารามิเตอร์
ส่งค่ากลับ
Pause
RunService:Pause():()
ส่งค่ากลับ
()
Reset
Run
RunService:Run():()
ส่งค่ากลับ
()
SetPredictionMode
พารามิเตอร์
ส่งค่ากลับ
()
Stop
RunService:Stop():()
ส่งค่ากลับ
()
เหตุการณ์
Misprediction
พารามิเตอร์
PostSimulation
PreAnimation
PreRender
PreSimulation
Stepped