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