RunService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa
Bez replikacji

RunService zawiera metody i wydarzenia związane z zarządzaniem czasem, a także z zarzą

RunService domyślnie hoteje wydarzenia, które umożliwiają użycie kodu do pętli ramy na ramę w

Wyniki testu kontekstu

<tbody>
<tr>
<td>Żywy gracz</td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>Żywy Serwer</td>
<td><code>fałszywy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>Tryb Edytowania</td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>fałszywy</code></td>
</tr>
<tr>
<td>Edytja współpracująca</td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>fałszywy</code></td>
</tr>
<tr>
<td>Tryb bieżący</td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
</tr>
<tr>
<td>Graj w trybie (klient)</td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
</tr>
<tr>
<td>Graj w trybie (na serwerze)</td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
</tr>
<tr>
<td>Test zespołu (gracz)</td>
<td><code>prawdziwy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
</tr>
<tr>
<td>Test zespołu (na serwerze)</td>
<td><code>fałszywy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
<td><code>prawdziwy</code></td>
<td><code>fałszywy</code></td>
</tr>
</tbody>

Podsumowanie

Właściwości

Metody

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

    Dane imię funkcji i priorytetu, ten metod przywiązuje funkcję do RunService.PreRender .

  • Zapis równoległy

    Wykonuje, czy obecny środowisko jest uruchomiony na klienta.

  • Zabezpieczenia dodatku plug-in
    Zapis równoległy

    Powoduje, czy obecny kod środowiskowy jest w trybie Edit.

  • Zapis równoległy

    Powoduje, czy przycisk Zacznij został naciśnięty, aby uruchomić symulację w Studio.

  • Wyjaśnia, czy doświadczenie jest obecnie uruchomione.

  • Zapis równoległy

    Wykonuje, czy obecny środowiskowy jest uruchomiony na serwerze.

  • Zapis równoległy

    Wyjaśnia, czy obecny kod środowiskowy jest uruchomiony w Studio.

  • Pause():void
    Zabezpieczenia dodatku plug-in

    Zatrzymuje symulację doświadczenia, jeśli jest ona uruchomiona, zawiesza fizykę i skrypcje.

  • Run():void
    Zabezpieczenia dodatku plug-in

    Konfiguruje symulację gra, która wykonuje fizykę i kody.

  • Stop():void
    Zabezpieczenia dodatku plug-in

    Zatrzymuje symulację doświadczenia, jeśli jest ona uruchomiona.

  • Odłącza funkcję, która była związana z renderowaniem za pomocą RunService:BindToRenderStep() .

Zdarzenia

Właściwości

ClientGitHash

Tylko do odczytu
Bez replikacji
Zabezpieczenia skryptów Roblox
Odczyt równoległy
Bez replikacji
Zabezpieczenia dodatku plug-in
Odczyt równoległy

Metody

BindToRenderStep

void

Funkcja BindToRenderStep() wiąże niestandardową funkcję, która powinna być wywołana w określonym czasie podczas kroku renderowania. Są trzy główne argumenty: name , priority i co 1>function1> należy wywołać.

Ponieważ jest powiązany z procesem renderowania klienta, BindToRenderStep() można wywołać tylko na klencie.

Nazwa

Parametr name jest etykietą dla wiązania i może być używany z RunService:UnbindFromRenderStep() , jeśli wiązanie nie jest już wymagane.


local RunService = game:GetService("RunService")
local function functionToBind() end
-- Zwiąż funkcję powyżej z wiążącym nazyającym się "tempBinding"
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- Odznacz funkcję związaną z "tempBinding"
RunService:UnbindFromRenderStep("tempBinding")
Priorytet

Priorytet priority wiązania jest liczbą całkowitą; określa, kiedy podczas kroku renderowania wezwieć niestandardową funkcję. Im niższy ten liczebnik, tym szybciej niestandardowa funkcja zostanie wywołana. Jeśli dwa wiązania mają tę samą priorytet, silnik Roblox losowo wybierze jeden do uruchomienia pierwszy. Domyślne skrypty kontrolne Roblox działają z tym

  • Wejście gracza: 100
  • Kontrolery kamery: 200 Dla udogodnienia; zapis ustawień Enum.RenderPriority można użyć do określenia wartości liczby, aby ustawić powiązanie. Na przykład, aby ustawić wiążącego prawie przed domyślną aktualizacjakamery, po prostu odejmij 1 od poziomu priorytetu kamery.

Podczas używania Enum.RenderPriority , pamiętaj o użyciu .Value na końcu pożądanego ennum. RunService:BindToRenderStep() nie będzie działał, jeśli tylko ennum jest używany posiadać.


local RunService = game:GetService("RunService")
local function beforeCamera(delta)
-- Kod tutaj zostanie wykonany przed domyślnym skryptem kamerą Roblox
end
RunService:BindToRenderStep("Before camera", Enum.RenderPriority.Camera.Value - 1, beforeCamera)
Niestandardowa funkcja i czas Delta

Ostatnim argumentem ( function ) jest funkcja niestandardowa do wezwania. Ta funkcja będzie przekazywana jeden parametr nazyającym się deltaTime, który pokazuje, ile czasu minęło między początkiem poprzedniego kroku renderowania a początkiem kroku renderowania obecnego.

Wszystkie aktualizacje renderowania zostaną wykonane, aż kod w renderingu się skończy. Upewnij się, że każdy kod zadany przez BindToRenderStep() będzie szybko i wydajnie wykonany; jeśli kod będzie zbyt długi, wizualizacje doświadczenia będą migotać.

Parametry

name: string

Etykieta dla wiązania, które można użyć z Unbind jeśli wiązanie nie jest już potrzebne.

priority: number

Priorytet wiązania jako liczby całkowitej; określa, kiedy podczas kroku renderowania wezwieć funkcję niestandardową. Im niższy ten liczebnik, tym szybciej funkcja niestandardowa zostanie wykonana. Jeśli dwa wiązania mają ten sam priorytet, silnik Roblox losowo wybierze jedną do wykonania pierwszy.

function: function

Zdefiniowana funkcja.


Zwroty

void

Przykłady kodu

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

Zapis równoległy

Jeśli kod, który wywołał ten metodzwraca się w kontekście klienta (w LocalScript , w ModuleScript wymaganym przez Class.LocalScript

Jeśli ten metod returnuje true , obecny środowisko może uzyskać dostęp do funkcji tylko dla klienta, takich jak RunService.PreRender lub Players.LocalPlayer.


Zwroty

Czy obecny środowisko jest uruchomiony klienta.

IsEdit

Zabezpieczenia dodatku plug-in
Zapis równoległy

Ten metod returnuje, czy obecny kod środowiskowy jest w trybie "edytowania", na przykład w Studio, gdy doświadczenie nie jest uruchomione.

IsEdit() zwróci odwrotność IsRunning() , z wyjątkiem czasu, w którym symulacja została wstrzymana, w którym obie metody zwrócą false .


Zwroty

Czy obecny interfejs jest w trybie "edytuj".

IsRunMode

Zapis równoległy

Ten metod returnuje, czy przycisk Zacznij został naciśnięty, aby uruchomić symulację w Studio. Będzie nadal wracać true, jeśli symulacja została wstrzymana przy użyciu przycisku Zatrzymaj ; jednak, po wstrzymaniu użycia przycisku 1>Zatrzymaj1>, zostanie zwrócona do

Uwaga, że Studio wchodzi tylko w tryb "biegnij", gdy przycisk Biegnij jest naciskany, nie przycisk Graj. Uwaga, że ten metod wypuści false jeśli symulacja została uruchomiona używając 2> Class.RunService:Run()2> zamiast przycisku 5> Biegnij5>.


Zwroty

Czy przycisk Biegnij został naciśnięty, aby uruchomić symulację w Studio.

IsRunning

Powoduje, czy doświadczenie jest obecnie uruchomione, co oznacza, że symulacja została uruchomiona za pomocą przycisków Biegnij lub Graj.

IsRunning() zawsze zwraca odwrotność IsEdit() z wyjątkiem czasu, w którym symulacja została wstrzymana, w którym obie metody zwracają false .


Zwroty

Czy doświadczenie jest obecnie uruchomione.

IsServer

Zapis równoległy

Ten metod returnuje, czy obecny środowisko jest uruchomione na serwerze. Jeśli kod, który uruchomił ten metod, jest uruchomiony w kontekście serw

Jeśli ta funkcja zwraca prawdę, to obecny środowisko może uzyskać dostęp do serwerowych funkcji, takich jak ServerStorage lub ServerScriptService.


Zwroty

Czy obecny środowisko jest uruchomiony na serwerze.

IsStudio

Zapis równoległy

Ten metod returnuje, czy obecny kod środowiskowy jest uruchomiony w Studio. Można go użyć do zapakowania kodu, który powinien zostać wykonany tylko podczas testowania w Studio.


Zwroty

Czy obecny środowisko jest uruchomiony w Studio.

Pause

void
Zabezpieczenia dodatku plug-in

Ten metod wstrzyma simulację doświadczenia, jeśli jest ona uruchomiona, zawiesza fizykę i skrypcje. Simulacja może być uruchomiona używając Run() lub przycisku Run w Studio; gdy simulacja jest wstrzymana, IsRunning() zwraca 1> false


Zwroty

void

Run

void
Zabezpieczenia dodatku plug-in

Ten metod wykonuje symulację doświadczenia (fizyka i skrypcje). Gdy symulacja jest uruchomiona, IsRunning() zwraca true. Jnak, IsRunMode() zwraca tylko 2> true2>, jeśli sym


Zwroty

void

Stop

void
Zabezpieczenia dodatku plug-in

Ten metod zaprzestaje symulacji doświadczenia, jeśli jest on uruchomiony. Gdy symulacja jest zatrzymana, IsRunning() zwraca false i IsEdit() zwraca 2>5> Class.RunService:Is5> .

W przeciwieństwie do przycisku Zatrzymaj w Studio, wywołanie tej metody nie przywróci doświadczenia do stanu, w którym było przed uruchomieniem symulacji. Oznacza to, że wszelkie zmiany dokonane dla doświadczenia przez symulację fizyczną i skrypcity będą trwać po zakończeniu simulacji.


Zwroty

void

UnbindFromRenderStep

void

Dane imię funkcji wysłane do BindToRenderStep() , ten metod będzie odłączyć funkcję od bycia wezwywanym podczas PreRender . To jest używane do odłączenia związanych funkcji, gdy nie są już potrzebne, lub gdy nie są już potrzebne do uruchomienia każdego kroku.

Jeśli nie jest funkcji związanej z podanym nazwiskiem, ten metodowy nie podejmuje działań i kontynuuje bez wzrostu błędu.

Parametry

name: string

Nazwa funkcji, która nie jest związana.


Zwroty

void

Zdarzenia

Heartbeat

Wydarzenie Heartbeat każdego klatki zdjęcia, po zakończeniu symulacji fizycznej. Argument deltaTime określa czas, który minął od poprzedniego klatki zdjęcia.

To wydarzenie jest, gdy większość skryptów zostanie wykonana. Dzieje się to na końcu każdego klatki i jest to również czas, w którym każde czekające skrypt są wykonane, takie jak te zaplanowane z biblioteką task. Heartbeat jest powszechnie używany do zadań okresowych, takich jak aktualizacja rdzeniowych systemów gry, takich jak regeneracja zdrowia.

Następnie silnik wysyła aktualizacje właściwości i wydarzenia na serwer lub klienty, które później otrzymywane są jako część kroku replikacji otrzymywania kroku.

Parametry

deltaTime: number

Czas (w sekundach) od upływu poprzedniego klatkę.


PostSimulation

Wydarzenie PostSimulation każdego klatki, po zakończeniu symulacji fizycznej. Indykalizuje czas, który upłynął od poprzedniego klatki.

Ten ewent jest przydatny do dokonania ostatecznych dostosowań do wyniku symulacji. Po tym etapie silnik wyzwala wydarzenie Heartbeat.

Parametry

deltaTimeSim: number

Czas (w sekundach) od upływu poprzedniego klatkę.


PreAnimation

Wydarzenie PreAnimation każdego klatki zadaje się przed symulacją fizyczną, ale po renderowaniu. Arгумент deltaTimeSim wskazuje czas minął od poprzedniego klatki.

Ten wątek jest przydatny do modyfikacji obiektów animacji, takich jak dostosowanie ich szybkości lub priorytetu. Po zakończeniu wydarzenia PreAnimation zasilanie silnika wykonuje te animacje, aktualizując wspólne transformacje, które później zostaną użyte do aktualizacji obiektów podczas symulacji fizycznej.

Po zakończeniu animacji silnik wywołuje wydarzenie PreSimulation.

Parametry

deltaTimeSim: number

Czas (w sekundach) od upływu poprzedniego klatkę.


PreRender

Wydarzenie PreRender (równoznaczne z Class.RunService.RenderStepped|RenderStepped) uruchamia każdą klatkę, zanim klatka zostanie renderowana. Arгумент deltaTimeRender wskazuje czas, który upłynął od poprzedniej klatki.

Ten wydarzenie umożliwia uruchomienie kodu i aktualizację świata, zanim zostanie ona wyświetlona na ekranie gracza. Jest to przydatne dla ostatnich korekt, takich jak zmiana pozycji obiektu, aktualizacja animacji lub przygotowanie efektów wizualnych, ale należy używać go rozsądnie, ponieważ silnik nie może zacząć renderowania ramy, dopóki kod w tym wydarzeniu nie zostanie wykonany.

Ponieważ PreRender jest stroną klienta, może być używany tylko w LocalScript , w ModuleScript wymagającym 2>Class.LocalScript2> lub w 5>Class.Script5> z ustawieniem 8>Class

Po fazie PreRender następuje fazja simulacyjna z wydarzeniem PreAnimation.

Parametry

deltaTimeRender: number

Czas (w sekundach) od upływu poprzedniego klatkę.


PreSimulation

Wydarzenie PreSimulation (równoznaczne z Stepped ) w każdym klatku zaczyna się przed symulacją fizyczną. Arгумент deltaTimeSim wskazuje czas, który minął od poprzedniego klatku.

Ten wątek jest przydatny do dostosowania właściwości, takich jak prędkość lub siła, zanim zostaną one zastosowane jako część symulacji. Następnie uruchomienie symulacji wykonane zostanie, potencjalnie wiele razy, jak rozwiązanie fizyczne biegnie z większą częstotliwością niż inne systemy silnikowe. Po zakończeniu tego wątku wydarzenie PostSimulation zost

Parametry

deltaTimeSim: number

Czas (w sekundach) od upływu poprzedniego klatkę.


RenderStepped

Wydarzenie RenderStepped (równoznaczne z PreRender ) każdego klatki zostanie uruchomione, zanim klatka zostanie renderowana. Arгумент deltaTime określa czas, który minął od poprzedniej klatki.

Ten wydarzenie umożliwia uruchomienie kodu i aktualizację świata, zanim zostanie ona wyświetlona na ekranie gracza. Jest to przydatne dla ostatnich korekt, takich jak zmiana pozycji obiektu, aktualizacja animacji lub przygotowanie efektów wizualnych, ale należy używać go rozsądnie, ponieważ silnik nie może zacząć renderowania ramy, dopóki kod w tym wydarzeniu nie zostanie wykonany.

Ponieważ RenderStepped jest stroną klienta, może być używany tylko w LocalScript , w ModuleScript wymagającym 2>Class.LocalScript2> lub w 5>Class.Script5> z ustawieniem

Po fazie RenderStepped następuje fazja simulacyjna z wydarzeniem PreAnimation.

Parametry

deltaTime: number

Czas (w sekundach) od upływu poprzedniego klatkę.


Stepped

Wydarzenie Stepped (równivalne z PreSimulation ) uruchamia każde klatki, zanim nastąpi symulacja fizyczna. Argument deltaTime określa czas minął od poprzedniego klatki.

Ten wątek jest przydatny do dostosowania właściwości, takich jak prędkość lub siła, zanim zostaną one zastosowane jako część symulacji. Następnie uruchomienie symulacji wykonane zostanie, potencjalnie wiele razy, jak rozwiązanie fizyczne biegnie z większą częstotliwością niż inne systemy silnikowe. Po zakończeniu tego wątku wydarzenie PostSimulation zost

Parametry

time: number

Czas (w sekundach) trwania RunService jest już uruchomiony.

deltaTime: number

Czas (w sekundach) od upływu poprzedniego klatkę.