RunService

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet
Çoğaltılmamış

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

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

    Bir işlevin bir yolunu ve önceliğini verdiğinde, bu yöntem işlevi RunService.PreRender 'e bağlar.

  • Paralel yaz

    Mevcut çevredeki çalışma modunu kullanıyor olup olmadığını döndürür.

  • Eklenti Güvenliği
    Paralel yaz

    Mevcut ortamın Edit modunda olup olmadığını döndürür.

  • Paralel yaz

    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.

  • Paralel yaz

    Mevcut çevrede sunucuda çalışıyor olup olmadığını döndürür.

  • Paralel yaz

    Stüdyo'da mevcut ortamın çalışıp çalışmadığını döndürür.

  • Pause():void
    Eklenti Güvenliği

    Eğer çalışıyorsa deneyin simülasyonunu askıya alır, fiziği veya kodu durdurur.

  • Run():void
    Eklenti Güvenliği

    oyunsimülasyonunu yürütür, fiziği ve kodları yürütür.

  • Stop():void
    Eklenti Güvenliği

    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

Özellikler

ClientGitHash

Salt Okunur
Çoğaltılmamış
Roblox Betik Güvenliği
Paralel oku
Çoğaltılmamış
Eklenti Güvenliği
Paralel oku

Yöntemler

BindToRenderStep

void

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

name: string

Etiket, bağlantıyı kullanmak için Unbind ile etiketlenmiş olsa da kullanılabilir bir bağlantıyı etiketlemek için kullanılabilir.

priority: number

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.

function: function

Ezgulanan özel işlev.


Dönüşler

void

Kod Örnekleri

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

Paralel yaz

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

Eklenti Güvenliği
Paralel yaz

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

Paralel yaz

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

Paralel yaz

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

Paralel yaz

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

void
Eklenti Güvenliği

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

void

Run

void
Eklenti Güvenliği

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

void

Stop

void
Eklenti Güvenliği

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

void

UnbindFromRenderStep

void

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

name: string

Unbind işlevinin adı.


Dönüşler

void

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

deltaTime: number

Ö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

deltaTimeSim: number

Ö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

deltaTimeSim: number

Ö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

deltaTimeRender: number

Ö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

deltaTimeSim: number

Ö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

deltaTime: number

Ö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

time: number

Class.RunService için çalışma süresi (saniye olarak).

deltaTime: number

Önceki karelden bu yana geçen zaman (saniye olarak).