RunService

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ
ไม่ซ้ำ

RunService มีวิธีและเหตุการณ์สำหรับการ

RunService Roblox

ผลการทดสอบบริบท

<tbody>
<tr>
<td>ผู้เล่นสด</td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>เซิร์ฟเวอร์สด</td>
<td><code>ปลอม</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>โหมดแก้ไข</td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ปลอม</code></td>
</tr>
<tr>
<td>แก้ไขร่วมกัน</td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ปลอม</code></td>
</tr>
<tr>
<td>วิธีการประเภท</td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
</tr>
<tr>
<td>เล่นโหมด (ลูกค้า)</td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
</tr>
<tr>
<td>เล่นโหมด (เซิร์ฟเวอร์)</td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
</tr>
<tr>
<td>ทดสอบทีม (ผู้เล่น)</td>
<td><code>ใช่</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
</tr>
<tr>
<td>ทดสอบทีม (เซิร์ฟเวอร์)</td>
<td><code>ปลอม</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
<td><code>ใช่</code></td>
<td><code>ปลอม</code></td>
</tr>
</tbody>
สภาพแวดล้อมIsStudioIsClientIsServerIsEditIsrunningIsRunMode

สรุป

คุณสมบัติ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    การรักษาความปลอดภัยของสคริปต์ Roblox
    อ่านพร้อมๆ กัน
  • ไม่ซ้ำ
    การรักษาความปลอดภัยของปลั๊กอิน
    อ่านพร้อมๆ กัน

วิธีการ

  • BindToRenderStep(name : string,priority : number,function : function):void

    ให้ชื่อสตริงของฟังก์ชันและความสามารถในการกำหนดความสำคัญนี้วิธีนี้ผูกฟังก์ชันไว้ที่ RunService.PreRender

  • เขียนพร้อมๆ กัน

    กลับว่าสภาพแวดล้อมปัจจุบันกำลังดำเนินการบนเครื่องคอมพิวเตอร์หรือไม่

  • การรักษาความปลอดภัยของปลั๊กอิน
    เขียนพร้อมๆ กัน

    กลับว่าสภาพแวดล้อมปัจจุบันอยู่ในโหมด Edit

  • เขียนพร้อมๆ กัน

    กลับว่าปุ่ม วิ่ง ได้ถูกกดเพื่อให้ประมาณการใน Studio หรือไม่

  • กลับว่าประสบการณ์กำลังดำเนินการหรือไม่

  • เขียนพร้อมๆ กัน

    กลับว่าสภาพแวดล้อมปัจจุบันกำลังดำเนินการบนเซิร์ฟเวอร์หรือไม่

  • เขียนพร้อมๆ กัน

    กลับว่าสภาพแวดล้อมปัจจุบันกำลังทำงานใน Studio หรือไม่

  • Pause():void
    การรักษาความปลอดภัยของปลั๊กอิน

    หยุดการจำลองการเปลี่ยนแปลงประสบการณ์หากมันกำลังดำเนินการ การรอดชีวิตและสคริปต์

  • Run():void
    การรักษาความปลอดภัยของปลั๊กอิน

    ดำเนินการจำลองเกม ดำเนินการฟิสิกส์และสคริปต์

  • Stop():void
    การรักษาความปลอดภัยของปลั๊กอิน

    หยุดการจำลองการใช้งานของประสบการณ์หากมันกำลังดำเนินการ

  • ยกเลิกการผูกฟังก์ชันที่เกี่ยวข้องกับวงจรการเรนเดอร์โดยใช้ RunService:BindToRenderStep()

อีเวนต์

  • ยิงทุกเฟรม หลังจากที่จำลองการเคลื่อนที่ได้รับการยอมรับ

  • ยิงทุกเฟรม หลังจากที่จำลองการเคลื่อนที่ได้รับการยอมรับ

  • ยิงทุกเฟรม ก่อนการจำลองฟิสิกส์ แต่หลังจากนั้น

  • PreRender(deltaTimeRender : number):RBXScriptSignal

    ยิงทุกเฟรม ก่อนที่จะเรนเดอร์เฟรม

  • ยิงทุกเฟรม ก่อนการจำลองฟิสิกส์

  • ยิงทุกเฟรม ก่อนที่จะเรนเดอร์เฟรม

  • Stepped(time : number,deltaTime : number):RBXScriptSignal

    ยิงทุกเฟรม ก่อนการจำลองฟิสิกส์

คุณสมบัติ

ClientGitHash

อ่านอย่างเดียว
ไม่ซ้ำ
การรักษาความปลอดภัยของสคริปต์ Roblox
อ่านพร้อมๆ กัน
ไม่ซ้ำ
การรักษาความปลอดภัยของปลั๊กอิน
อ่านพร้อมๆ กัน

วิธีการ

BindToRenderStep

void

การใช้งาน BindToRenderStep() รวมคุณสมบัติตัวอักษรที่กำหนดเวลาในขั้นตอนการเรนเดอร์ มีสามตัวอาร์กุลตัวอักษรหลัก: name , priority และสิ่งที่ 1> function1> จะโทร

เนื่องจากมันเกี่ยวข้องกับกระบวนการเรนเดอร์ของลูกค้า, BindToRenderStep() สามารถเรียกได้เฉพาะลูกค้าเท่านั้น

ชื่อ

ตัวประกาศ name เป็นป้ายชื่อสำหรับการผูก และสามารถใช้กับ RunService:UnbindFromRenderStep() หากการผูกไม่ได้รับการต้องการแล้ว


local RunService = game:GetService("RunService")
local function functionToBind() end
-- ผูกคุณสมบัติด้านบนให้กับการผูกที่มีชื่อว่า "tempBinding"
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- ยกเลิกการผูกติดตั้งฟังก์ชัน "tempBinding"
RunService:UnbindFromRenderStep("tempBinding")
ความสามารถ

ค่า priority ของการผูกคือตัวเลข; มันกำหนดเมื่อใดที่ในขั้นตอนการเรนเดอร์ที่จะเรียกคุณสมบัติที่กำหนด ยิ่งตัวเลขนี้ต่ำเท่าไหร่คุณสมบัติจะยิ่งเร็ว หากค่าค

  • การป้อนข้อมูลของผู้เล่น: 100
  • การควบคุมกล้อง: 200 สำหรับความสะดวก; คลาส Enum.RenderPriority อัปเดตโดยเฉพาะอย่างยิ่งเพื่อให้เป็นไปตามการปรั

เมื่อใช้ Enum.RenderPriority จำไว้ว่าจะใช้ .Value ในตอนท้ายของเนื้อหาที่ต้องการ RunService:BindToRenderStep() เป็นเจ้าของ


local RunService = game:GetService("RunService")
local function beforeCamera(delta)
-- รหัสที่นี่จะทำงานก่อนสคริปต์กล้อง Roblox เริ่มต้น
end
RunService:BindToRenderStep("Before camera", Enum.RenderPriority.Camera.Value - 1, beforeCamera)
คุณสมบัติฟังก์ชันและเวลาดีลตา

อาร์กุมุนต์สุดท้าย ( function ) เป็นอาร์กุมุนต์ที่กำหนดเองเพื่อเรียก ฟังก์ชันนี้จะผ่านปารามิเตอร์หนึ่งที่เรียกว่า deltaTime ซึ่งแสดงว่าเวลาที่ผ่านระหว่างต้นของกระบวนการเ

การอัปเดตการเรนเดอร์ทั้งหมดจะรอจนกว่ารหัสในขั้นตอนเรนเดอร์จะเสร็จสิ้น ให้แน่ใจว่ารหัสที่เรียกโดย BindToRenderStep() จะดำเนินการอย่างรวดเร็วและมีประสิทธิภาพ; หากรหัสใช้เวลานานเกินไป,

พารามิเตอร์

name: string

เครื่องหมายสำหรับการผูกที่สามารถใช้ได้กับ Unbind หากการผูกนั้นไม่จำเป็นอีกต่อไป

priority: number

ความสามารถในการกำหนดค่าความสามารถเป็นตัวเลข มันจะกำหนดเมื่อใดที่ในขั้นตอนการเรนเดอร์ที่จะเรียกคุณสมบัติที่กำหนดเอง หากค่าความสามารถนี้มีความสามารถเดียวกันคุณสมบัตินี้จะถูกเลื

function: function

กำลังเรียกใช้งานฟังก์ชันที่กำหนดเอง


ส่งค่ากลับ

void

ตัวอย่างโค้ด

Frame Moving in Circle

local RunService = game:GetService("RunService")
-- How fast the frame ought to move
local SPEED = 2
local frame = script.Parent
frame.AnchorPoint = Vector2.new(0.5, 0.5)
-- A simple parametric equation of a circle
-- centered at (0.5, 0.5) with radius (0.5)
local function circle(t)
return 0.5 + math.cos(t) * 0.5, 0.5 + math.sin(t) * 0.5
end
-- Keep track of the current time
local currentTime = 0
local function onRenderStep(deltaTime)
-- Update the current time
currentTime = currentTime + deltaTime * SPEED
-- ...and the frame's position
local x, y = circle(currentTime)
frame.Position = UDim2.new(x, 0, y, 0)
end
-- This is just a visual effect, so use the "Last" priority
RunService:BindToRenderStep("FrameCircle", Enum.RenderPriority.Last.Value, onRenderStep)
--RunService.RenderStepped:Connect(onRenderStep) -- Also works, but not recommended
RunService Custom Function

local RunService = game:GetService("RunService")
local function checkDelta(deltaTime)
print("Time since last render step:", deltaTime)
end
RunService:BindToRenderStep("Check delta", Enum.RenderPriority.First.Value, checkDelta)
Bind and Unbind a Function

local RunService = game:GetService("RunService")
-- Step 1: Declare the function and a name
local NAME = "Print Hello"
local function printHello()
print("Hello")
end
-- Step 2: Bind the function
RunService:BindToRenderStep(NAME, Enum.RenderPriority.First.Value, printHello)
-- Step 3: Unbind the function
RunService:UnbindFromRenderStep(NAME)

IsClient

เขียนพร้อมๆ กัน

หากโค้ดที่เรียกวิธีนี้ดำเนินการในบริบทของลูกค้า (ใน LocalScript ที่ต้อ

หากวิธีนี้กลับมา true ให้สภาพแวดล้อมปัจจุบันสามารถเข้าถึงคุณสมบัติเฉพาะของลูกค้าเช่น RunService.PreRender หรือ Players.LocalPlayer ได้


ส่งค่ากลับ

ว่าสภาพแวดล้อมปัจจุบันกำลังรันตัวลูกค้าหรือไม่

IsEdit

การรักษาความปลอดภัยของปลั๊กอิน
เขียนพร้อมๆ กัน

วิธีนี้กลับมาที่เป็น "เปลี่ยนแปลง" หากสภาพแวดล้อมปัจจุบันอยู่ในโหมด "เปลี่ยนแปลง" เช่นใน Studio เมื่อประสบการณ์ไม่ได้ทำงาน

IsEdit() จะกลับค่าการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับการกลับก


ส่งค่ากลับ

ว่าสภาพแวดล้อมปัจจุบันอยู่ในโหมด "แก้ไข"

IsRunMode

เขียนพร้อมๆ กัน

วิธีนี้จะกลับมาที่ วิธีการประเมินผล หากปุ่ม true ถูกกดเพื่อดำเนินการจำลองใน Studio จะได้รับการกลับมาเป็น true หมายเหตุว่า Studio เข้าสู่โหมด "วิ่ง" เมื่อปุ่ม วิ่ง ถูกกดไม่ใช่ปุ่ม เล่น โปรดทราบว่าวิธีนี้จะกลับมาเป็น false หากเริ่มซิมูเลชันโด


ส่งค่ากลับ

ว่าปุ่ม วิ่ง ได้ถูกกดเพื่อดำเนินการจำลองใน Studio

IsRunning

กลับว่าประสบการณ์กำลังดำเนินการหรือไม่ ซึ่งหมายความว่าการจำลองได้ถูกดำเนินการโดยใช้ปุ่ม วิ่ง หรือ เล่น IsRunning() จะส่งผลลัพธ์ที่น้องๆ ของ IsEdit() เสมอ ยกเว้นเมื่อการจำลองถูกหยุดชั่วคราวในขณะที่ทั้งสองวิธีจะส่งผลลัพธ์ false


ส่งค่ากลับ

ว่าประสบการณ์กำลังดำเนินการอยู่หรือไม่

IsServer

เขียนพร้อมๆ กัน

วิธีนี้กำหนดว่าสภาพแวดล้อมปัจจุบันกำลังดำเนินการบนเซิ

หากคุณสมบัตินี้กลับมาเป็นความจริง สิ่งแวดล้อมปัจจุบันของคุณสามารถเข้าถึงคุณสมบัติเฉพาะของเซิร์ฟเวอร์เช่น ServerStorage หรือ ServerScriptService ได้


ส่งค่ากลับ

ว่าสภาพแวดล้อมปัจจุบันกำลังดำเนินการบนเซิร์ฟเวอร์หรือไม่

IsStudio

เขียนพร้อมๆ กัน

วิธีนี้กำหนดว่าสภาพแวดล้อมปัจจุบันที่เรียกใช้ใน Studio หรือไม่ สามารถใช้เพื่อหุ้มโค้ดที่ควรจะเรียกใช้เฉพาะเมื่อทดสอบใน Studio


ส่งค่ากลับ

ว่าสภาพแวดล้อมปัจจุบันกำลังดำเนินการใน Studio หรือไม่

Pause

void
การรักษาความปลอดภัยของปลั๊กอิน

วิธีนี้ระงับการจำลองการใช้งานของประสบการณ์หากมันกำลังดำเนินการ การรอดูดพลังงานและสคริปต์ การจำลองสามารถเริ่มได้โดยใช้ Class.RunService:Run()|


ส่งค่ากลับ

void

Run

void
การรักษาความปลอดภัยของปลั๊กอิน

วิธีนี้จะดําเนินการจําลองประสบการณ์ (ฟิสิกส์และสคริปต์) ของประสบการณ์ เมื่อวิธีนี้ดําเนินการได้ Class.RunService:Isrunning()|


ส่งค่ากลับ

void

Stop

void
การรักษาความปลอดภัยของปลั๊กอิน

วิธีนี้หยุดการจำลองการใช้งานของประสบการณ์หากมันกำลังดำเนินการ เมื่อการจำลองถูกหยุดจะกลับมาที่ IsRunning() และ false จะกลั

ในขณะที่ปุ่ม หยุด ใน Studio จะไม่สามารถกู้คืนประสบการณ์ไปยังสถานะที่มันอยู่ในก่อนหน้าการดำเนินการ หมายถึงการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นในประสบการณ์โดยการจำลองภาพเคลื่อนไ


ส่งค่ากลับ

void

UnbindFromRenderStep

void

ให้ชื่อของฟังก์ชันที่ส่งไปยัง BindToRenderStep() วิธีนี้จะปลดบังฟังก์ชันจากการเรียกในระหว่าง PreRender หรือเมื่อพวกเขาไม่ต้องการเ

หากไม่มีคุณสมบัติตามชื่อที่กำหนด วิธีนี้จะไม่ดำเนินการและดำเนินต่อไปโดยไม่มีข้อผิดพลาด

พารามิเตอร์

name: string

ชื่อของฟังก์ชันที่ไม่ได้ผูก


ส่งค่ากลับ

void

อีเวนต์

Heartbeat

กิจกรรม Heartbeat จะเริ่มตั้งแต่ทุกเฟรมหลังจากที่การจำลองฟิสิกส์เสร็จสิ้น อาร์กิวมต์ deltaTime ระบุเวลาที่ผ่านมาตั้งแต่เฟรมก่อนหน้า

เหตุการณ์นี้เกิดขึ้นเมื่อส่วนใหญ่ของสคริปต์ทำงาน มันเกิดขึ้นในตอนท้ายของแต่ละเฟรมและยังเป็นเมื่อใด ๆ ของสคริปต์ที่รอกำลังดำเนินการ เช่น การปรับปรุงระ

หลังจากนี้เครื่องส่งการปรับปรุงสถานะและกิจกรรมของเครื่องให้กับเซิร์ฟเวอร์หรือลูกค้าที่จะได้รับในภายหลังเป็นส่วนหนึ่งของกระบวนการรับ การเลียนแบบ รับขั้นตอน

พารามิเตอร์

deltaTime: number

เวลา (ในวินาที) ที่ผ่านมาจากเฟรมก่อนหน้า


PostSimulation

กิจกรรม PostSimulation จะเริ่มตั้งแต่ทุกเฟรมหลังจากที่การจำลองฟิสิกส์เสร็จสิ้น อาร์กิวมต์ deltaTimeSim ชี้ให้เห็นถึงเวลาที่ผ่านมาตั้งแต่เฟรมก่อนหน้า

กิจกรรมนี้มีประโยชน์สำหรับการปรับแต่งการจัดการล่าสุดในผลลัพธ์ของการจำลอง หลังจากสิ้นสุดระยะนี้ เครื่องยนต์จะเริ่มต้นอีเวนต์ Heartbeat

พารามิเตอร์

deltaTimeSim: number

เวลา (ในวินาที) ที่ผ่านมาจากเฟรมก่อนหน้า


PreAnimation

กิจกรรม PreAnimation จะเปิดทุกเฟรม ก่อนการจำลองฟิสิกส์ แต่หลังจากการจำลอง สารบัญ deltaTimeSim ระบุเวลาที่ผ่านมาตั้งแต่เฟรมก่อนหน้า

เหตุการณ์นี้มีประโยชน์สำหรับการปรับแต่งวัตถุอนิเมชัน เช่นการปรับความเร็วหรือความสำคัญของพวกเขา เมื่อเหตุการณ์ PreAnimation สิ้นสุดลง เครื่องจะดำเนินการปรับแต่งวิดีโอเหล่

หลังจากที่อนิเมชันถูกเรียกตัวเครื่องจะเรียกเหตุการณ์ PreSimulation

พารามิเตอร์

deltaTimeSim: number

เวลา (ในวินาที) ที่ผ่านมาจากเฟรมก่อนหน้า


PreRender

กิจกรรม PreRender (เทียบเท่ากับ RenderStepped ) จะปรากฏขึ้นทุกเฟรม ก่อนที่เฟรมนั้นจะถูกเรนเดอร์ สารบัญ deltaTimeRender ระบุเวลาที่ผ่านมาตั้งแต่เฟรมก่อน

เหตุการณ์นี้ช่วยให้คุณสามารถดำเนินการโค้ดและปรับปรุงโลกก่อนที่จะวาดบนหน้าจอของผู้เล่น นี่เป็นประโยชน์สำหรับการปรับแต่งตำแหน่งวัตถุ การปรับปรุงอนิเมชัน หรือก

เนื่องจาก PreRender เป็นด้านล่าง, มันสามารถใช้ใน LocalScript ที่ต้องการโดย ModuleScript หรือใน

หลังจากสิ้นสุดสเตจ PreRender เริ่มต้นสเตจ PreAnimation ด้วยอีเวนต์

พารามิเตอร์

deltaTimeRender: number

เวลา (ในวินาที) ที่ผ่านมาจากเฟรมก่อนหน้า


PreSimulation

กิจกรรม PreSimulation (เทียบเท่ากับ Stepped ) จะปรากฏขึ้นทุกเฟรม ก่อนการจำลองฟิสิกส์ สารบัญ deltaTimeSim ระบุเวลาที่ผ่านมาตั้งแต่เฟรมก่อนหน้า

เหตุการณ์นี้มีประโยชน์สำหรับการปรับค่าสมบัติเช่นความเร็วหรือแรงเพียงก่อนที่จะถูกประยุกต์ในระหว่างการจำลอง การจำลองจะดำเนินการต่อจากนั้นจะปล่อยให้เหตุก

พารามิเตอร์

deltaTimeSim: number

เวลา (ในวินาที) ที่ผ่านมาจากเฟรมก่อนหน้า


RenderStepped

กิจกรรม RenderStepped (เทียบเท่ากับ PreRender ) จะปรากฏขึ้นทุกเฟรม ก่อนที่เฟรมจะแสดง สัญลักษณ์ deltaTime ระบุเวลาที่ผ่านมาตั้งแต่เฟรมก่อนหน้า

เหตุการณ์นี้ช่วยให้คุณสามารถดำเนินการโค้ดและปรับปรุงโลกก่อนที่จะวาดบนหน้าจอของผู้เล่น นี่เป็นประโยชน์สำหรับการปรับแต่งตำแหน่งวัตถุ การปรับปรุงอนิเมชัน หรือก

เนื่องจาก RenderStepped เป็นด้านล่าง, มันสามารถใช้ใน LocalScript ที่ต้องการโดย ModuleScript หรือใน <

หลังจากสิ้นสุดสเต็ปเฟส RenderStepped เฟสซิมูลเรชันเริ่มต้นด้วยกิจกรรม PreAnimation

พารามิเตอร์

deltaTime: number

เวลา (ในวินาที) ที่ผ่านมาจากเฟรมก่อนหน้า


Stepped

กิจกรรม Stepped (เทียบเท่ากับ PreSimulation ) จะปรากฏทุกเฟรม ก่อนที่จะเริ่มการจำลองฟิสิกส์ สัญลักษณ์ deltaTime ระบุเวลาที่ผ่านมาตั้งแต่เฟรมก่อนหน้า

เหตุการณ์นี้มีประโยชน์สำหรับการปรับค่าสมบัติเช่นความเร็วหรือแรงเพียงก่อนที่จะถูกประยุกต์ในระหว่างการจำลอง การจำลองจะดำเนินการต่อจากนั้นจะปล่อยให้เหตุก

พารามิเตอร์

time: number

ระยะเวลา (ในวินาที) ที่ RunService ได้ทำงานมา

deltaTime: number

เวลา (ในวินาที) ที่ผ่านมาจากเฟรมก่อนหน้า