RunService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
RunService , denetim ve yönetim için denetim ve etkinlik yönetimi için etkin
RunService ayrıca Roblox'un çerçeveli çerçeveli döngüsüne uyumlu kodunuz
Konu Test Sonuçları
<tbody><tr><td>Canlı Oyuncu</td><td><code>false</code></td><td><code>doğru</code></td><td><code>false</code></td><td /><td /><td /></tr><tr><td>Canlı Sunucu</td><td><code>false</code></td><td><code>false</code></td><td><code>doğru</code></td><td /><td /><td /></tr><tr><td>Düzenleme Modu</td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>false</code></td></tr><tr><td>İşbirliği Düzenleme</td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>false</code></td></tr><tr><td>Koşma Modu</td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>doğru</code></td></tr><tr><td>Oyun Modu (Müşteri)</td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>false</code></td></tr><tr><td>Oyun Modu (Sunucu)</td><td><code>doğru</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>doğru</code></td></tr><tr><td>Takım Testi (Oyuncu)</td><td><code>doğru</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>false</code></td></tr><tr><td>Takım Testi (Sunucu)</td><td><code>false</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>false</code></td><td><code>doğru</code></td><td><code>false</code></td></tr></tbody>
Özet
Özellikler
Yöntemler
Bir işlevin bir yolunu ve önceliğini verdiğinde, bu yöntem işlevi RunService.PreRender 'e bağlar.
Mevcut çevredeki çalışma modunu kullanıyor olup olmadığını döndürür.
Mevcut ortamın Edit modunda olup olmadığını döndürür.
Stüdyo'da simülatörü çalıştırmak için Run düğmesine basıldığını gösterir.
Deneyin şu anda çalışıyor olup olmadığını döndürür.
Mevcut çevrede sunucuda çalışıyor olup olmadığını döndürür.
Stüdyo'da mevcut ortamın çalışıp çalışmadığını döndürür.
Eğer çalışıyorsa deneyin simülasyonunu askıya alır, fiziği veya kodu durdurur.
oyunsimülasyonunu yürütür, fiziği ve kodları yürütür.
Eğer çalışıyorsa deneyimin simülasyonunu durdurur.
Class.RunService:BindToRenderStep() kullanarak render bağlantısına bağlanan bir işlevi bağlantısını keser.
Etkinlikler
Fiziksel simülasyon tamamlandıktan sonra her kareyi ateş eder.
Fiziksel simülasyon tamamlandıktan sonra her kareyi ateş eder.
Fiziksel simülasyonun önünde her kareyi yakar, ancak rendelemeden sonra.
Çerçevenin renderlenmeden önce her kareyi yanıltır.
Fiziksel simülasyonun önünde her kareyi yanıltır.
Çerçevenin renderlenmeden önce her kareyi yanıltır.
Fiziksel simülasyonun önünde her kareyi yanıltır.
Özellikler
ClientGitHash
RunState
Yöntemler
BindToRenderStep
BindToRenderStep() işlevi, render adımında belirli bir zaman içinde çağırılacak özel bir işlevi bağlar. Üç ana argüman var: name, priority ve call what 1>function1> .
BindToRenderStep() olarak, bu sadece kliptaki render işlemine bağlı olarak çağrılabilir.
İsim
name parametresi, bağlantı için bir etiket olup, bağlantı gerekli olmayan durumda RunService:UnbindFromRenderStep() ile kullanılabilir.
local RunService = game:GetService("RunService")
local function functionToBind() end
-- Aşağıdaki işlevi "tempBind" olarak adlandırılan bağlayıcıya bağlayın
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- "tempBind" için bağlanan işlevi bağla
RunService:UnbindFromRenderStep("tempBinding")
Öncelik
Bağlantının priority kullanımla ilgilidir; çalışma adımında özelleştirilmiş işlevi çağırmanın zamanını belirler. Bu sayıyı düşürmek, özelleştirilmiş işlevin çağrılmasını daha erken sağlar. Eğer iki bağlantı aynı önceliğe sahipse, Roblox motoru rastgele
- Oyuncu Girişi: 100
- Kamera Kontrolleri: 200 Özellikle, Enum.RenderPriority kayıt dizesini belirlemek için kullanılan 1 kamera önceliği seviyesinden düşürülür. Örneğin, varsayılan kameranın güncellemeinden önce bir bağlantıyı ayarlamak için kamera önceliği seviyesinden 1> 21> düş
Class.RunService:BindToRenderStep() kullanırken, istediğiniz enümün sonunda .Value kullanmayı unutmayın. RunService:BindToRenderStep() sadece enüm kullanıldığında çalışmayacak.
local RunService = game:GetService("RunService")
local function beforeCamera(delta)
-- Buradaki kod varsayılan Roblox kamera kayıdından önce çalışacaktır
end
RunService:BindToRenderStep("Before camera", Enum.RenderPriority.Camera.Value - 1, beforeCamera)
Özel Fonksiyon ve Delta Zamanı
Son argument ( function ) is the custom function to call. Bu işlev, deltaTime olarak adlandırılan bir parametre geçecek ve bu işlev, önceki render adımının başlangıcından itibaren mevcut render adımının başlangıcına kadar kaç saniye olduğunu gösterir.
Tüm render güncellemeleri render adımının bitmesine kadar beklenir. BindToRenderStep() adındaki herhangi bir kodu çalıştırın, kod çok uzun sürüyorsa deneyiniz görseli karışık olabilir.
Parametreler
Etiket, bağlantıyı kullanmak için Unbind ile etiketlenmiş olsa da kullanılabilir bir bağlantıyı etiketlemek için kullanılabilir.
Kullanıcının eylemlerini yürütme sırasında kullanıcının özel işlevini çağırma önceliği olarak kullanıcı bağlantısının önceliği; render adımında özel işlevin çağrılacağı zamanı belirler. Bu sayı daha düşük olduğunda, özel işlevin çağrılacağı sırayı Roblox motoru rastgele seçer.
Ezgulanan özel işlev.
Dönüşler
Kod Örnekleri
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
Bu yöntemi çağıran kod bir client context (içinde bir LocalScript , bir ModuleScript gerektiren bir Class.LocalScript veya bir <
Bu yöntem true ı döndüyorsa, mevcut ortam RunService.PreRender veya Players.LocalPlayer gibi yalnızca klien için görüntülenen özelliklere erişebilir.
Dönüşler
Mevcut çevre, kliyi çalıştırıyor mu.
IsEdit
Bu yöntem, mevcut çevrede "düzenle" modunda olup olmadığını gösterir, örneğin Studio'da deneyim çalıştırılmadığında.
IsEdit()``Class.RunService:IsRunning()|IsRunning() <code> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1>
Dönüşler
Mevcut çevre "düzenle" modunda ise.
IsRunMode
Bu yöntem, Eğitimi simülatörünü Studio'da çalıştırmak için true düğmesine basıldığını gösterir. Simülatör Eğitimi butonu kullanılarak durdurulduysa 2> 5>true5> ile dönecektir; ancak 8> 1>停1>
Studio sadece şu anda koş düğmesine basıldığında koş moduna girer, false düğmesiyle değil. Ayrıca bu yöntem, 2>koş2> düğmesine basıldığında 5>geri5> dönecektir, böylece simülatör kullanılarak 8>oyunu</
Dönüşler
Stüdyo'da simülatörü çalıştırmak için Run düğmesine basıldığından emin olun.
IsRunning
Simülasyonun şu anda çalışıyor olup olmadığını gösterir, yani Run veya Oyna düğmeleri kullanılarak simülasyonun çalıştırıldığını gösterir.
IsRunning() simülasyon askıya alındığında her zaman IsEdit() ın tersini iade eder, bu durumda her iki metod da false ı döndürür.
Dönüşler
Deneyin şu anda çalışıyor olup olmadığı.
IsServer
Bu yöntem, mevcut çevredeki sunucuda çalışıp çalışmadığını gösterir. Eğer bu yöntemin çağ
Bu işlev gerçekleştirme eğer döndüğünde, mevcut ortam ServerStorage veya ServerScriptService gibi sunucu-sadece özelliklere erişebilir.
Dönüşler
Mevcut çevrede sunucuda çalışıyor olup olmadığı.
IsStudio
Bu yöntem Studio'da mevcut ortamın çalışıp çalışmadığını döndürür. Studio'da sadece test sırasında çalıştırılacak kodu çevrelemek için kullanılabilir.
Dönüşler
Mevcut çevre Studio'da çalışıyor mu?
Pause
Bu yöntem, deneyin simülasyonunu durdurur veya fiziksel veya kodu durdurur. Simülasyonu durdurmak için Run() veya Run düğmesine Studio'da başlanabilir; simülasyon durdurulduğunda 2> 5> Class.RunService:Isrunning()|Isrunning()5> ile
Dönüşler
Run
Bu yöntem deneyin simülasyonunu (fizik ve kodlar) çalıştırır. Simülasyon çalışıyorken, IsRunning()``true ile dönecektir. Ancak, IsRunMode() sadece
Dönüşler
Stop
Bu yöntem deneyin simülasyonunu durdurur eğer çalışıyorsa. Simülasyon durdurulduğunda, Class.RunService:IsRunning()|IsRunning()``false``Class.RunService:IsEdit()|IsEdit() 2> 5>Class.RunService:Is5> 8>Class.RunService:IsEdit8>
Stüdyo'daki Dur düğmesine karşılık, bu yöntemi çağırmak deneyimi şimdiden çalıştığı durumuna sıfırlamayacaktır. Bu, fiziksel simülasyon ve kodlar tarafından deneyin üzerinde yapılan herhangi bir değişikliği kalıcı olarak sürdürecektir.
Dönüşler
UnbindFromRenderStep
Class.RunService:BindToRenderStep()|BindToRenderStep() adında bir işlevin ismi verildiğinde, bu yöntem PreRender çağrısı sırasında işlevden bağlanmayı kaldırır. Bu, ihtiyaç duyulmayan işlevleri bir kenara bırakır veya her adımın sona ermesini sağlar.
Verilen isimden bağımlı işlev yoksa, bu yöntem harekete geçmez ve bir hata olmadan devam eder.
Parametreler
Unbind işlevinin adı.
Dönüşler
Etkinlikler
Heartbeat
Heartbeat olayı her kareyi ateş eder, fiziksel simülasyonun bitmesinden sonra. deltaTime argumentı, önceki kareden bu yana elapsed olan süreyi gösterir.
Bu etkinlik, çoğu kodun çalıştığında gerçekleşir. Her kare bitişinde gerçekleşir ve ayrıca task kütüphanesi gibi herhangi bir bekleyen kodların da yürütülmesi gerekir. Heartbeat genellikle çekirdek oyun sistemlerini güncelleme gibi periyodik görevler için kullanılır.
Bu adımı takiben motor, replikasyon alma adımının bir parçası olarak sunuculara veya istemcilere özellik güncellemeleri ve etkinlikleri gönderir.
Parametreler
Önceki karelden bu yana geçen zaman (saniye olarak).
PostSimulation
Fiziksel simülasyonun tamamlanmasından sonra her kareyi ateş eden PostSimulation etkinliği. deltaTimeSim argümanı, önceki kareden bu yana elapsed olan süreyi gösterir.
Bu etkinlik, simülasyonun sonuçlarına nihai ayarlar yapmak için kullanışlıdır. Bu aşamadan sonra, motor Heartbeat olayını tetikler.
Parametreler
Önceki karelden bu yana geçen zaman (saniye olarak).
PreAnimation
PreAnimation etkinliği her kareyi tetikler, fiziksel simülasyonun önünde, ancak rendelemeden sonra. deltaTimeSim argumentı, önceki kareden bu yana elapsed olan süreyi gösterir.
Bu olay, hızlarını veya önceliğini değiştirmek gibi animasyon nesnelerini modifiye etmek için yararlıdır. PreAnimation etkinliği tamamlandığında, motor bu animasyonları çalıştırır ve önceki şekillendirmeyi günceller. Bu şekillendirmeler, fiziksel simülasyon sırasında nesneleri güncelleme için kullanılacak ortak dönüşümleri
Animasyonlar adımlandıktan sonra motor, PreSimulation etkinliğini başlatır.
Parametreler
Önceki karelden bu yana geçen zaman (saniye olarak).
PreRender
PreRender etkinliği (RenderStepped eşdeğer) her kareyi etkisiz bırakır, kare renderlenmeden önce. deltaTimeRender argumentı, önceki karenin etkisiz olduğunu gösterir.
Bu etkinlik, kodu çalıştırmak ve kodu oyuncunun ekranında görünmeden önce dünyayı güncellemek için izin verir. Bu, kodu değiştirme, animasyonları güncelleme veya görsel efektleri hazırlama gibi son dakika değişiklikleri için yararlıdır, ancak motorun bu etkinliğin sona ermesine izin vermeden çalıştırılamaz.
As PreRender tarafta, sadece bir LocalScript içinde, bir ModuleScript gerektiren bir Class.LocalScript veya bir 1> Class.Script1> ile bir 4> Class.BaseScript.Run
Simülasyon aşamasının başlangıcında PreRender etkinliğiyle başlar.
Parametreler
Önceki karelden bu yana geçen zaman (saniye olarak).
PreSimulation
Fiziksel simülasyonun önündeki Stepped etkinliği (deltaTimeSim eşdeğer) her kareyi başlatır. 1> deltaTimeSim1> argümanı, önceki kareden bu yana elapsed süreyi gösterir.
Bu etkinlik, hız veya güç gibi özellikleri uygulanmadan önce ayarlamak için kullanışlıdır. Simülasyon, ardından, fiziksel çözgümcü, diğer motor sistemlerinden daha yüksek frekansda çalıştığından potansiyel olarak birkaç kez çalışır. Bu, PostSimulation etkinliği
Parametreler
Önceki karelden bu yana geçen zaman (saniye olarak).
RenderStepped
RenderStepped etkinliği (PreRender eşdeğer) her kareyi önce kare renderlenmeden önce başlatır. deltaTime argumentı, önceki kareden bu yana elapsed olan süreyi gösterir.
Bu etkinlik, kodu çalıştırmak ve kodu oyuncunun ekranında görünmeden önce dünyayı güncellemek için izin verir. Bu, kodu değiştirme, animasyonları güncelleme veya görsel efektleri hazırlama gibi son dakika değişiklikleri için yararlıdır, ancak motorun bu etkinliğin sona ermesine izin vermeden çalıştırılamaz.
As RenderStepped tarafta, sadece bir LocalScript içinde, bir ModuleScript gerektiren bir Class.LocalScript içinde veya bir 1> Class.Script1> ile bir 4>
Simülasyon aşamasının başlangıcında RenderStepped etkinliğiyle başlıyor.
Parametreler
Önceki karelden bu yana geçen zaman (saniye olarak).
Stepped
Stepped etkinliği (PreSimulation eşdeğer) her kareyi önce fiziksel simülasyonu başlatır. deltaTime argumentı, önceki kareden bu yana elapsed süreyi gösterir.
Bu etkinlik, hız veya güç gibi özellikleri uygulanmadan önce ayarlamak için kullanışlıdır. Simülasyon, ardından, fiziksel çözgümcü, diğer motor sistemlerinden daha yüksek frekansda çalıştığından potansiyel olarak birkaç kez çalışır. Bu, PostSimulation etkinliği
Parametreler
Class.RunService için çalışma süresi (saniye olarak).
Önceki karelden bu yana geçen zaman (saniye olarak).