RunService
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
RunService đều chứa các phương thức và sự kiện cho qu
RunService cũng nhà các sự kiện cho phép bạn code của bạn để tuân theo k
Kết quả kiểm tra ngữ cảnh
<tbody><tr><td>Người chơi trực tiếp</td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td><td /><td /><td /></tr><tr><td>Máy Chủ Thực Tế</td><td><code>false</code></td><td><code>false</code></td><td><code>true</code></td><td /><td /><td /></tr><tr><td>Chế độ chỉnh sửa</td><td><code>true</code></td><td><code>true</code></td><td><code>true</code></td><td><code>true</code></td><td><code>false</code></td><td><code>false</code></td></tr><tr><td>Chỉnh sửa hợp tác</td><td><code>true</code></td><td><code>true</code></td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td><td><code>false</code></td></tr><tr><td>Chạy Mode</td><td><code>true</code></td><td><code>true</code></td><td><code>true</code></td><td><code>false</code></td><td><code>true</code></td><td><code>true</code></td></tr><tr><td>Chơi mode (Client)</td><td><code>true</code></td><td><code>true</code></td><td><code>false</code></td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td></tr><tr><td>Chơi mode (Server)</td><td><code>true</code></td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td><td><code>true</code></td><td><code>true</code></td></tr><tr><td>Thử nghiệm đội (Người chơi)</td><td><code>true</code></td><td><code>true</code></td><td><code>false</code></td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td></tr><tr><td>Làm kiểm tra đội (Server)</td><td><code>false</code></td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td></tr></tbody>
Tóm Tắt
Thuộc Tính
Phương Pháp
Được cung cấp một tên chuỗi của một hàm và một thứ hạng, phương thức này liên kết hàm với RunService.PreRender .
Quyết định whether the current environment is running on the client.
Quyết định whether the current environment is in Edit mode.
Quyết định có phải nhấn vào nút Chạy để chạy simulators trong Studio.
Quay về có đang chạy trải nghiệm hay không.
Quyết định whether the current environment is running on the máy chủ.
Quyết định whether the current environment is running in Studio.
Tạm dừng mô phỏng trải nghiệm nếu nó đang chạy, khiến cho nó không thể kết nối với các kịch bản và mô phỏng.
Chạy trò chơi simulators, chạy vật lý và nhận xét.
Ngăn chặn mô phỏng trải nghiệm nếu nó đang chạy.
Làm giả bộ đơn xử lý đã được liên kết với RunService:BindToRenderStep() để xử lý lại.
Sự Kiện
Lửa mọi khung hình, sau khi công suất phản ứng hóa học hoàn thành.
Lửa mọi khung hình, sau khi công suất phản ứng hóa học hoàn thành.
Làm cháy mọi khung trước khi mô phỏng vật lý nhưng sau khi xử lý.
Làm cháy mọi khung trước khi khung được hiển thị.
Làm cháy mọi khung trước khi bắt đầu mô phỏng vật lý.
Làm cháy mọi khung trước khi khung được hiển thị.
Làm cháy mọi khung trước khi bắt đầu mô phỏng vật lý.
Thuộc Tính
ClientGitHash
RunState
Phương Pháp
BindToRenderStep
Hàm BindToRenderStep() định nghĩa một hàm chức năng tùy chỉnh để được gọi vào một thời điểm cụ thể trong quá trình render. Có ba giá trị chính: name , priority và những gì để gọi.
Vì nó liên quan đến quá trình render của client, BindToRenderStep() chỉ có thể được gọi trên client.
Tên
Tham số name là một nhãn cho các bước kết nối và có thể được sử dụng với RunService:UnbindFromRenderStep() nếu các bước kết nối không còn cần thiết.
local RunService = game:GetService("RunService")
local function functionToBind() end
-- Làm cho chức năng trên bên trên của chức năng "tempBind"
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- Gỡ kết nối chức năng được gắn với "tempBind"
RunService:UnbindFromRenderStep("tempBinding")
Độ tiên tiến
The priority of the binding is an integer; it determines when during the render step to call the custom function. The lower this number, the sooner the custom function will be called. If two bindings have the same priority, the Roblox engine will randomly pick one to run first. The default Roblox control scripts run with these specific priorities:
- Nhập người chơi: 100
- Điều khiển máy ảnh: 200 Để tiện lợi;枚 Enum.RenderPriority枚 có thể được sử dụng để xác định giá trị số để cài đặt một liên kết. Ví dụ, để tạo một liên kết trước khi cập nhật máy ảnh mặc định, chỉ cần
Khi sử dụng Enum.RenderPriority , hãy nhớ sử dụng .Value ở cuối danh sách枚 đều được đề xuất. RunService:BindToRenderStep() sẽ không hoạt động nếu chỉ sử dụng枚 đều được đề xuất riêng sở hữu.
local RunService = game:GetService("RunService")
local function beforeCamera(delta)
-- Mã ở đây sẽ chạy trước khi tập lệnh Roblox camera mặc định
end
RunService:BindToRenderStep("Before camera", Enum.RenderPriority.Camera.Value - 1, beforeCamera)
Hàm Tùy Chỉnh và Thời Gian Delta
引用 最后 参数 ( function ) là hàm tùy chỉnh để gọi. Hàm này sẽ được truyền một biến đổi tùy chỉnh tên là deltaTime which shows how much time passed between the beginning of the previous render step and the beginning of the current render step.
Tất cả các cập nhật rending sẽ đợi cho đến khi mã trong bước render xong. Make sure that any code called by BindToRenderStep() runs quickly and efficiently; if code takes too long, trải nghiệm visuals sẽ bị nhiều.
Tham Số
Độ ưu tiên của hàm như một số nguyên; nó xác định khi nào trong quá trình render gọi hàm tùy chỉnh. Càng thấp số này, hàm tùy chỉnh sẽ được gọi sớm hơn. Nếu hai hàm có cùng độ ưu tiên, Engine Roblox sẽ chọn ngẫu nhiên để chạy đầu tiên.
Hàm tùy chỉnh đang được liên kết.
Lợi Nhuận
Mẫu mã
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
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)
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
Nếu mã đã triển khai phương thức này đang chạy trong một context client (trong một LocalScript , trong một Class
Nếu phương pháp này trả lại true, môi trường hiện tại có thể truy cập các tính năng chỉ dành cho khách hàng, chẳng hạn như RunService.PreRender hoặc Players.LocalPlayer.
Lợi Nhuận
Whether the current environment is running the client.
IsEdit
Phương thức này trả về có hay không đang ở chế độ "chỉnh sửa" trong môi trường hiện tại, ví dụ như trong Studio khi trải nghiệm không đang chạy.
IsEdit() sẽ trả lại ngược lại của IsRunning() , ngoại trừ khi simulazione đã tạm dừng, trong đó cả hai phương thức sẽ trả lại false .
Lợi Nhuận
Dù môi trường hiện tại đang ở chế độ "chỉnh sửa" hay không.
IsRunMode
Phương thức này trả về whether the Run button has been pressed to run the simulation in Studio. Nó sẽ tiếp tục trả về true nếu simulators đã được tạm dừng bằng nút Pause ; however, once it has been stopped using the 1> Stop1> button, it will revert to returning 4> force</
Lưu ý rằng Studio chỉ bắt đầu "chạy" khi nút Chạy được nhấn, không phải là nút Chơi. Cũng lưu ý rằng phương pháp này sẽ trả lại false nếu simulators được khởi động bằng cách sử dụng
Lợi Nhuận
Có phải nút Chạy đã được nhấn để thiết lập mô phỏng trong Studio.
IsRunning
Trả lại có tức là trải nghiệm đang chạy hay không, có nghĩa là simulators đã được chạy bằng các nút Chạy hoặc Chơi.
IsRunning() sẽ luôn trả lại ngược lại của IsEdit() ngoại trừ khi simulators đã được tạm dừng, trong đó cả hai phương pháp sẽ trả lại false .
Lợi Nhuận
Có đang chạy trải nghiệm hay không.
IsServer
Các biến này được định nghĩa bởi các giá trị trong các ô trong máy chủ Class.ModuleScript
Nếu chức năng này trả về true, thì môi trường hiện tại có thể truy cập các tính năng chỉ dành cho máy chủ như ServerStorage hoặc ServerScriptService .
Lợi Nhuận
Môi trường hiện tại có đang chạy trên máy chủ không.
IsStudio
Phương thức này trả về có hay không có một môi trường đang chạy trong Studio. Nó có thể được sử dụng để bao gồm mã nên chỉ được thiết lập khi thử nghiệm trong Studio.
Lợi Nhuận
Có phải môi trường hiện tại đang chạy trong Studio không?
Pause
Phương pháp này tạm dừng simulazione trải nghiệm nếu nó đang chạy, khiến cho simulazione dừng chạy nếu có vật lý và script. Simulación có thể được bắt đầu bằng cách sử dụng Run() hoặc nút Run ở Studio;
Lợi Nhuận
Run
Phương thức này chạy simulators (vật lý và script) của trải nghiệm. Khi simulators đang chạy, IsRunning() sẽ trả lại true . Tuy nhiên, IsRunMode()
Lợi Nhuận
Stop
Phương thức này ngăn chặn simulatorship if it is running. When simulatorship is stopped, IsRunning() sẽ trả lại false và IsEdit() sẽ trả lại 1>1> tru
Ngược lại với nút Dừng lại trong Studio, gọi phương thức này sẽ không khôi phục trải nghiệm đến trạng thái nó đã ở trước khi máy chủ được thiết lập. Điều này có nghĩa là bất kỳ thay đổi nào đã được thực hiện trên trải nghiệm bởi máy chủ và script sẽ t
Lợi Nhuận
UnbindFromRenderStep
Được cung cấp một tên của một hàm đã gửi đến BindToRenderStep() , phương thức này sẽ bỏ kết thúc gọi của hàm trong PreRender . Điều này được sử dụng để bỏ kết thúc các
Nếu không có chức năng liên kết bằng cái tên được đưa ra, phương pháp này không thực hiện bất kỳ hành động nào và tiếp tục mà không nâng cấp một lỗi.
Tham Số
Tên của chức năng đang bị unbound.
Lợi Nhuận
Sự Kiện
Heartbeat
Sự kiện Heartbeat mỗi khung, sau khi công suất simulinkhí cơ học hoàn tất. deltaTime argument cho thấy thời gian đã trôi qua kể từ khung trước.
Sự kiện này xảy ra khi hầu hết các script được thi hành. Nó xảy ra ở cuối mỗi khung và cũng là khi bất kỳ lệnh chờ đợi nào được thi hành, chẳng hạn như những lệnh được lịch trình cho task library. Heartbeat thường đượ
Sau bước này, máy chủ hoặc máy chủ gửi các cập nhật và sự kiện thuộc tính cho máy chủ hoặc khách hàng mà sau đó được nhận là một phần của bước nhận nhân bản nhận bước.
Tham Số
Thời gian (in giây) từ khi khung trước.
PostSimulation
Sự kiện PostSimulation diễn ra mỗi khung hình, sau khi công suất simulặng vật lý hoàn tất. deltaTimeSim argument cho thấy thời gian đã trôi qua kể từ khung hình trước.
Sự kiện này hữu ích để thực hiện các điều chỉnh cuối cùng cho kết quả của mô phỏng. Sau giai đoạn này, máy chủ sẽ kích hoạt sự kiện Heartbeat.
Tham Số
Thời gian (in giây) từ khi khung trước.
PreAnimation
Sự kiện PreAnimation diễn ra mỗi khung hình, trước khi simulazione vật lý nhưng sau khi render. Biểu tượng deltaTimeSim cho thời gian đã elapsed kể từ khung hình trước.
Sự kiện này hữu ích cho việc điều chỉnh các đối tượng hoạt họa, chẳng hạn như điều chỉnh tốc độ hoặc ưu tiên của chúng. Khi sự kiện PreAnimation kết thúc, máy chủ sẽ thực hiện các hoạt họa này, cập nhật những hình thể chung sẽ được sử dụng sau đ
Sau khi hoạt họa được bước, máy chủ sẽ kích hoạt sự kiện PreSimulation .
Tham Số
Thời gian (in giây) từ khi khung trước.
PreRender
Sự kiện PreRender (tương đương với RenderStepped ) khiến mọi khung hình đều được kết thúc trước khi khung hình được render. Biến deltaTimeRender cho thấy thời gian đã trôi qua kể từ khung hình trước đó.
Sự kiện này cho phép bạn chạy mã và cập nhật thế giới trước khi nó được vẽ trên màn hình của một người chơi. Điều này hữu ích cho các điều chỉnh cuối cùng như thay đổi vị trí người đối tượng, cập nhật hoạt họa hoặc chuẩn bị hiệu
Vì PreRender là bên client, nó chỉ có thể được sử dụng trong một LocalScript , trong một ModuleScript yêu cầu bởi một 1> Class.LocalScript
Sau khi kết thúc giai đoạn PreRender, giai đoạn simulación bắt đầu với sự kiện PreAnimation.
Tham Số
Thời gian (in giây) từ khi khung trước.
PreSimulation
Sự kiện PreSimulation (tương đương với Stepped ) kích hoạt mỗi khung hình, trước khi simulators vật lý. Ủ thuyết deltaTimeSim đề cập thời gian đã trôi qua kể từ khung hình trước.
Sự kiện này hữu ích để điều chỉnh các thuộc tính như tốc độ hoặc lực chỉ trước khi chúng được áp dụng như một phần của simulazione. Simulazione sau đó chạy, có thể nhiều lần, khi solver vật lý chạy ở tần số cao hơn các hệ thống động cơ khá
Tham Số
Thời gian (in giây) từ khi khung trước.
RenderStepped
Sự kiện RenderStepped (tương đương với PreRender ) kích hoạt mỗi khung hình, trước khi khung hình được render. The deltaTime argument indicates the time that has elapsed since the previous frame.
Sự kiện này cho phép bạn chạy mã và cập nhật thế giới trước khi nó được vẽ trên màn hình của một người chơi. Điều này hữu ích cho các điều chỉnh cuối cùng như thay đổi vị trí người đối tượng, cập nhật hoạt họa hoặc chuẩn bị hiệu
Vì RenderStepped là bên client, nó chỉ có thể được sử dụng trong một LocalScript , trong một ModuleScript yêu cầu bởi một 1> Class.LocalScript
Sau khi kết thúc giai đoạn RenderStepped, giai đoạn simulación bắt đầu với sự kiện PreAnimation.
Tham Số
Thời gian (in giây) từ khi khung trước.
Stepped
Sự kiện Stepped (tương đương với PreSimulation ) kích hoạt mỗi khung hình, trước khi simulators vật lý. Ủ thuận deltaTime đề cập thời gian đã trôi qua kể từ khung hình trước.
Sự kiện này hữu ích để điều chỉnh các thuộc tính như tốc độ hoặc lực chỉ trước khi chúng được áp dụng như một phần của simulazione. Simulazione sau đó chạy, có thể nhiều lần, khi solver vật lý chạy ở tần số cao hơn các hệ thống động cơ khá
Tham Số
Thời gian (in seconds) mà RunService đã chạy.
Thời gian (in giây) từ khi khung trước.