RunService 에는 경험 또는 스크립트가 실행되는 컨텍스
RunService 는 코드가 Roblox의 프레임 간 루프에 준수하도록 하는 이벤트를 보
컨텍스트 테스트 결과
<tbody><tr><td>라이브 플레이어</td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td><td /><td /><td /></tr><tr><td>라이브 서버</td><td><code>false</code></td><td><code>false</code></td><td><code>true</code></td><td /><td /><td /></tr><tr><td>편집 모드</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>공동 편집</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>실행 모드</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>플레이 모드 (클라이언트)</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>플레이 모드 (서버)</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>팀 테스트 (플레이어)</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>팀 테스트 (서버)</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>
요약
메서드
함수의 문자열 이름과 우선 순위를 지정하면 이 메서드는 함수를 RunService.PreRender로 바인딩합니다.
클라이언트에서 현재 환경이 실행되는지 여부를 반환합니다.
현재 환경이 Edit 모드에 있는지 여부를 반환합니다.
Studio에서 시뮬레이션을 실행하려는 경우 실행 버튼을 누른 경우 실행을 반환합니다.
현재 경험이 실행되고 있는지 여부를 반환합니다.
현재 서버에서 실행 중인 환경을 반환합니다.
Studio에서 현재 환경이 실행되는지 여부를 반환합니다.
실행 중인 경험 시뮬레이션을 일시 중지하거나 물리 및 스크립트를 일시 중지합니다.
물리 및 스크립트를 실행합니다.
실행 중인 경우 경험의 시뮬레이션을 중지합니다.
Class.RunService:BindToRenderStep() 을 사용하여 렌더링 루프에 바인딩된 함수를 해제합니다.
이벤트
물리 시뮬레이션이 완료된 후 모든 프레임을 발사합니다.
물리 시뮬레이션이 완료된 후 모든 프레임을 발사합니다.
물리 시뮬레이션 전에 모든 프레임을 발사하지만 렌더링 후에는 발사하지 않습니다.
프레임이 렌더링되기 전에 모든 프레임을 실행합니다.
물리 시뮬레이션 전에 모든 프레임을 발사합니다.
프레임이 렌더링되기 전에 모든 프레임을 실행합니다.
물리 시뮬레이션 전에 모든 프레임을 발사합니다.
속성
ClientGitHash
RunState
메서드
BindToRenderStep
BindToRenderStep() 함수는 렌더링 단계에서 특정 시간에 호출할 사용자 지정 함수를 바인딩합니다. 주요 인수는 세 가지입니다: name, priority, 그리고 호출할 함수 1>function1>.
클라이언트의 렌더링 프로세스에 연결되므로, BindToRenderStep() 은 클라이언트에서만 호출할 수 있습니다.
이름
name 매개 변수는 바인딩을 위한 레이블이며, 바인딩이 더 이상 필요하지 않은 경우 RunService:UnbindFromRenderStep() 와 함께 사용할 수 있습니다.
local RunService = game:GetService("RunService")
local function functionToBind() end
-- 위의 함수를 "tempBind"라는 이름의 바인딩에 바인딩
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- 임시 바인딩에 대해 함수를 해제하십시오.
RunService:UnbindFromRenderStep("tempBinding")
우선 순위
바인딩의 우선 순위는 정수입니다; 렌더링 단계에서 사용자 지정 함수를 호출할 때를 결정합니다. 이 숫자가 낮을수록 사용자 지정 함수가 더 빨리 호출됩니다. 두 바인딩의 우선 순위가 동일하면 Roblox 엔진은 랜덤으로 하나를 선택하여 실행합니다. 기본 Roblox 컨
- 플레이어 입력: 100
- 카메라 컨트롤: 200 편의를 위해; Enum.RenderPriority 열거형을 사용하여 바인딩을 설정하는 정수 값을 결정할 수 있습니다. 예를 들어, 기본 카메라 업데이트 전에 바인딩 오른쪽을 설정하려면 카메라 우선 레벨1을 뺄 수 있습니다.
Class.RunService:BindToRenderStep() 는 원하는 열거형의 끝에 .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() 에서 호출한 코드가 잘 실행되는지 확인하십시오. 코드가 너무 오래 걸리면 경험 시각화가 복잡해질 수 있습니다.
매개 변수
정수 값으로 바인딩의 우선 순위를 지정합니다. 이 숫자가 렌더링 단계에서 사용자 지정 함수를 호출할 때를 결정합니다. 이 숫자가 낮을수록 사용자 지정 함수가 더 먼저 호출됩니다. 두 바인딩의 우선 순위가 동일하면 Roblox 엔진은 랜더링 단계에서 첫 번째로 실행할 함수를 Randomly 선택합니다.
사용자 지정 함수 바인딩.
반환
코드 샘플
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
이 메서드를 호출한 코드가 클라이언트 컨텍스트(LocalScript , ModuleScript 필요한 클라이언트 컨��
이 메서드가 true를 반환하면 현재 환경은 RunService.PreRender 또는 Players.LocalPlayer와 같은 클라이언트 전용 기능에 액세스할 수 있습니다.
반환
현재 환경이 클라이언트를 실행하는지 여부.
IsEdit
이 메서드는 현재 환경이 "편집" 모드인지 여부를 반환합니다. 예를 들어 Studio에서 경험이 실행되지 않은 경우.
IsEdit() 는 시뮬레이션이 일시 중지된 경우 IsRunning() 의 반대를 반환합니다. 이 경우 두 메서드 모두 false 를 반환합니다.
반환
현재 환경이 "편집" 모드인지 여부.
IsRunMode
이 메서드는 Studio에서 시뮬레이션을 실행하려는 경우 실행 버튼이 누르고 있는지 여부를 반환합니다. 시뮬레이션이 true 버튼을 사용하여 일시 중지되면 1> true1> 을 반환합니다. 그러나 4>
Studio는 Run 버튼을 누르는 경우에만 실행 모드로 들어가고, false 버튼은 시뮬레이션을 시작하는 데 사용되지 않습니다. 또한 이 메서드는 2> false2> 을 반환합니다 5> 8>Run8> 버튼이 아닌 경
반환
Studio에서 시뮬레이션을 실행하려면 실행 버튼을 누른 경우.
IsRunning
현재 실행 중인지 여부를 반환합니다. 즉, 시뮬레이션이 Run 또는 Play 버튼을 사용하여 실행되고 있는지 여부를 의미합니다.
IsRunning() 는 시뮬레이션이 중지된 경우에만 IsEdit() 의 반대를 반환합니다. 그렇지 않으면 두 메서드 모두 false 를 반환합니다.
반환
현재 경험이 실행되고 있는지 여부.
IsServer
이 메서드는 현재 환경이 서버에서 실행되는지 여부를 반환합니다. 코드가 이 메서드를 실행하는 서
이 함수가 트루로 반환되면 현재 환경은 ServerStorage 또는 ServerScriptService와 같은 서버 전용 기능에 액세스할 수 있습니다.
반환
현재 서버에서 실행 중인 환경입니다.
IsStudio
이 메서드는 Studio에서 현재 환경이 실행되는지 여부를 반환합니다. 이를 사용하여 Studio에서만 실행해야 하는 코드를 감싼다.
반환
현재 환경이 Studio에서 실행되는지 여부입니다.
Pause
이 메서드는 실행 중인 경험의 시뮬레이션을 일시 중지하거나 물리 및 스크립트를 정지합니다. 시뮬레이션은 Run() 또는 Studio의 Run 버튼을 사용하여 시작할 수 있습니다; 시뮬레이션이 일시 중지
반환
Run
이 메서드는 경험의 시뮬레이션(물리 및 스크립트)을 실행합니다. 시뮬레이션이 실행되고 있는 경우 IsRunning() 는 Class.RunService:IsRunning 을 반환합니다. 그러나 Class.RunService:
반환
Stop
이 메서드는 실행 중인 경험의 시뮬레이션을 중지합니다. 시뮬레이션이 중지되면 IsRunning() 가 false 반환하고, IsEdit() 가 2> true2> 반환합니다.
Studio의 정지 버튼과 달리 이 메서드를 호출하면 시뮬레이션이 실행된 이전의 상태로 경험을 복원하지 않습니다. 이는 물리 시뮬레이션 및 스크립트에 대한 경험의 변경 사항이 시뮬레이션이 끝난 후에도 지속된다는 것을 의미합니다.
반환
이벤트
Heartbeat
물리 시뮬레이션이 완료된 후 프레임마다 Heartbeat 이벤트가 발생합니다. deltaTime 인수는 이전 프레임부터 지난 시간을 나타냅니다.
이 이벤트는 대부분의 스크립트가 실행되는 때입니다. 이 프레임의 끝에 발생하며, 또한 모든 대기 스크립트가 실행되는 때입니다, 예를 들어, task 라이브러리와 같은 코어 게임 시스템을 업데이트하는 것과 같은 주기 작업. Heartbeat 는 일반적으로 코어
이 단계를 따르면 엔진은 복제 단계의 일부로 나중에 받을 서버나 클라이언트에 속성 업데이트 및 이벤트를 보냅니다.Following this step, the engine sends property updates and events to the server or clients which are later received as part of the replication receive step.
매개 변수
이전 프레임부터 지난 시간(초)입니다.
PostSimulation
물리 시뮬레이션이 완료된 후 프레임마다 PostSimulation 이벤트가 발생합니다. deltaTimeSim 인수는 이전 프레임부터 지난 시간을 나타냅니다.
이 이벤트는 시뮬레이션 결과에 최종 조정을 적용하는 데 유용합니다. 이 단계를 따르면 엔진은 Heartbeat 이벤트를 트리거합니다.
매개 변수
이전 프레임부터 지난 시간(초)입니다.
PreAnimation
이 이벤트는 물리 시뮬레이션이 시작되지 않은 전에 모든 프레임에 발생하며, 렌더링 후에는 PreAnimation 인수가 나타납니다. deltaTimeSim 인수는 이전 프레임부터 지난 시간을 나타냅니다.
이 이벤트는 속도 및 우선 순위를 조정하는 등의 애니메이션 개체를 수정하는 데 유용합니다. PreAnimation 이벤트가 완료되면 엔진은 이러한 애니메이션을 실행하고 나중에 물리 시뮬레이션에서 개체를 업데이트하는 데 사용될 공동 변환을 업데이트합니다.
애니메이션이 완료된 후 엔진은 PreSimulation 이벤트를 트리거합니다.
매개 변수
이전 프레임부터 지난 시간(초)입니다.
PreRender
PreRender 이벤트(RenderStepped 에 해당)는 모든 프레임에서 실행됩니다. deltaTimeRender 인수는 이전 프레임이 렌더링될 때부터 지정합니다.
이 이벤트를 사용하면 플레이어 화면에 그려지기 전에 코드를 실행하고 세계를 업데이트할 수 있습니다. 이는 개체 위치를 변경하거나 애니메이션을 업데이트하거나 시각적 효과를 준비하는 등의 마지막 수정 작업에 유용합니다. 하지만 이 이벤트에서 코드를 실행하기 전에 엔진이 프레임을 �
PreRender는 클라이언트 사이에서 사용할 수 있으며, LocalScript 는 필요한 클래스 ModuleScript 에 대해 사용할 수 있으며, 1>Class.Script1> 는 필요한
Following the PreRender phase, the simulation phase begins with the PreAnimation event.
매개 변수
이전 프레임부터 지난 시간(초)입니다.
PreSimulation
물리 시뮬레이션 PreSimulation 이벤트(클래스 Stepped과 동일)는 모든 프레임에서 실행됩니다. deltaTimeSim 인수는 이전 프레임에서 지난 시간을 나타냅니다.
이 이벤트는 속도 또는 힘과 같은 속성을 조정하기 위해 단순히 시뮬레이션에 적용하기 전에 사용됩니다. 그런 다음 시뮬레이션이 실행되고, 가능하면 여러 번, 물리 해결기가 다른 엔진 시스템보다 더 높은 주파수에서 실행되므로 이벤트가 완료됩니다. Class
매개 변수
이전 프레임부터 지난 시간(초)입니다.
RenderStepped
RenderStepped 이벤트(PreRender 에 해당)는 모든 프레임에서 실행됩니다. deltaTime 인수는 이전 프레임이 렌더링될 때부터 지정합니다.
이 이벤트를 사용하면 플레이어 화면에 그려지기 전에 코드를 실행하고 세계를 업데이트할 수 있습니다. 이는 개체 위치를 변경하거나 애니메이션을 업데이트하거나 시각적 효과를 준비하는 등의 마지막 수정 작업에 유용합니다. 하지만 이 이벤트에서 코드를 실행하기 전에 엔진이 프레임을 �
As RenderStepped 은 클라이언트 사이에서 사용할 수 있지만, LocalScript 는 필요한 클라이언트, ModuleScript 는 필요한 클라이언트 및 1> Class.
Following the RenderStepped phase, the simulation phase begins with the PreAnimation event.
매개 변수
이전 프레임부터 지난 시간(초)입니다.
Stepped
Stepped 이벤트(물리 시뮬레이션 전에 수행되는 이벤트)가 모든 프레임을 실행합니다. PreSimulation 은 물리 시뮬레이션 시작 전에 발생합니다. deltaTime 은 이전 프레임 이후 지난 시간을 나타냅니다.
이 이벤트는 속도 또는 힘과 같은 속성을 조정하기 위해 단순히 시뮬레이션에 적용하기 전에 사용됩니다. 그런 다음 시뮬레이션이 실행되고, 가능하면 여러 번, 물리 해결기가 다른 엔진 시스템보다 더 높은 주파수에서 실행되므로 이벤트가 완료됩니다. Class