RunService
RunService : Instance
Overview
RunService를 사용하면 프레임 단위의 반복 루프 이벤트를 활용해 로직을 처리하거나, 현재 실행 중인 환경이 서버인지 스튜디오인지 등을 판별할 수 있습니다.
실행 환경을 확인하는 기능은 특히 클라이언트와 서버 양쪽에서 공유되는 ModuleScript에서 환경에 따라 다른 동작을 구현해야 할 때 유용하게 사용할 수 있습니다.
Properties
ClientGitHash
string
현재 지원되지 않습니다.
Code Samples
Methods
IsClient
메서드를 호출한 코드가 클라이언트 환경에서 실행 중인지 여부를 반환합니다.
LocalScript 또는 LocalScript에 의해 로드된 ModuleScript에서 호출된 경우, true를 반환합니다.
Parameters
Return
bool
클라이언트 환경에서 실행 중인지 여부입니다.
Code Samples
local RunService = game:GetService("RunService")
local IsClient = RunService:IsClient()
print("IsClient : ", IsClient)
IsServer
메서드를 호출한 코드가 서버 환경에서 실행 중인지 여부를 반환합니다.
서버 측의 Script 또는 Script에 의해 로드된 ModuleScript에서 호출된 경우, true를 반환합니다.
Parameters
Return
bool
서버 환경에서 실행 중인지 여부입니다.
Code Samples
local RunService = game:GetService("RunService")
local IsServer = RunService:IsServer()
print("IsServer : ", IsServer)
IsStudio
현재 클라이언트가 스튜디오 환경에서 실행 중인지 여부를 반환합니다.
Studio에서만 동작해야 하는 테스트용 코드를 조건부로 실행할 때 유용하게 사용할 수 있습니다.
Parameters
Return
bool
스튜디오 환경에서 실행 중인지 여부입니다.
Code Samples
local RunService = game:GetService("RunService")
local IsStudio = RunService:IsStudio()
print("IsStudio : ", IsStudio)
Events
Heartbeat
물리 시뮬레이션 완료된 후에, 매 프레임의 마지막 단계 마다 호출되는 이벤트입니다.
스크립트의일반적인 실행 시점으로, task.delay나 task.spawn 등을 통해 예약된 스크립트도 이 시점에 함께 처리됩니다.
체력 회복이나 타이머 갱신처럼 주기적으로 실행해야 하는 로직에 적합한 이벤트입니다.
Parameters
number
deltaTime
직전 프레임부터 현재 프레임까지 흐른 시간으로, 단위는 초입니다. 프레임 간 시간 간격을 기반으로 한 계산에 활용할 수 있습니다.
Code Samples
local RunService = game:GetService("RunService")
local Timer = 0
local function UpdateEvent(deltaTime)
Timer = Timer + deltaTime
print(Timer)
end
RunService.Heartbeat:Connect(UpdateEvent)
Stepped
물리 시뮬레이션이 시작되기 전에, 매 프레임 마다 호출되는 이벤트입니다.
Parameters
number
time
RunService가 시작된 이후 경과된 시간으로, 단위는 초입니다.
number
deltaTime
직전 프레임부터 현재 프레임까지 흐른 시간으로, 단위는 초입니다. 프레임 간 시간 간격을 기반으로 한 계산에 활용할 수 있습니다.
Code Samples
local RunService = game:GetService("RunService")
local function OnStepped(timeElapsed, deltaTime)
print(timeElapsed)
end
RunService.Stepped:Connect(OnStepped)
RenderStepped
화면에 프레임이 그려지기 전에, 매 프레임 마다 호출되는 이벤트입니다.
Parameters
number
deltaTime
직전 프레임부터 현재 프레임까지 흐른 시간으로, 단위는 초입니다. 프레임 간 시간 간격을 기반으로 한 계산에 활용할 수 있습니다.
Code Samples
local RunService = game:GetService("RunService")
local Timer = 0
local function OnRenderStepped(deltaTime)
Timer = Timer + deltaTime
print(Timer)
end
RunService.RenderStepped:Connect(OnRenderStepped)
Last updated