Empty
Empty
Empty
RunService는 애니메이션에 사용될 수 있으며, 실시간 업데이트와 프레임 단위 제어를 처리할 수 있게 해줍니다.
이벤트 | 세부 사항 |
---|---|
Heartbeat | 물리 시뮬레이션이 완료된 후 매 프레임마다 실행됩니다. |
PostSimulation | 물리 시뮬레이션이 완료된 후 매 프레임마다 실행됩니다. |
PreAnimation | 물리 시뮬레이션 이전, 렌더링 이후에 매 프레임마다 실행됩니다. |
PreRender | 렌더링 이전에 매 프레임마다 실행됩니다. |
PreSimulation | 물리 시뮬레이션 이전에 매 프레임마다 실행됩니다. |
RenderStepped | 렌더링 이전에 매 프레임마다 실행됩니다. |
Stepped | 물리 시뮬레이션 이전에 매 프레임마다 실행됩니다. |
RunService vs wait()
Empty
Empty
Empty
local part = Instance.new("Part")
part.Size = Vector3.new(4, 4, 4)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Parent = workspace
local speed = 5 -- studs per second
spawn(function()
while true do
wait(0.033) -- Approximate wait time for 30 FPS (Frame per second)
part.Position = part.Position + Vector3.new(speed * 0.033, 0, 0)
end
end)
wait()은 덜 정확하며 시간이 약간 변동할 수 있어 애니메이션이 덜 부드러울 수 있습니다.
RunService vs TweenService
Empty
Empty
Empty
- 매끄럽고 예측 가능한 애니메이션에 적합합니다.
- 간단한 속성 전환에 가장 적합합니다.
- 내장된 이징 스타일 사용이 간편합니다.
- TweenService는 프레임 독립적인 속성 보간을 위한 delta time 사용을 포함하여 RunService와 유사한 메커니즘을 활용하여 매끄러운 애니메이션을 보장합니다.
Empty
Empty
Empty
- 실시간 동적 업데이트에 적합합니다.
- 프레임 단위 제어를 허용합니다.
- 애니메이션 외에도 다양한 작업에 사용할 수 있습니다.
- RenderStepped는 클라이언트 측에서 발생하는 렌더링 프로세스와 연관되어 있으므로 LocalScripts에만 제한됩니다.
RunService 사용 사례 예시
예시 | 세부 사항 |
---|---|
Custom Render Logic | 3D GUI: 게임 세계에서 부품이나 캐릭터를 따라야 하는 3D GUI 요소를 생성하고 업데이트합니다. |
Player-Exclusive Features | 로컬 게임 메커니즘: 로컬 플레이어에게만 영향을 미치는 기능이나 메커니즘을 구현합니다. 예를 들어, 로컬 전용 입자 효과나 조명 변경 등을 포함합니다. |
Camera Manipulation | 동적 카메라 제어: 플레이어의 행동이나 게임 이벤트에 따라 카메라의 위치, 방향, 또는 초점을 매끄럽게 업데이트하여 몰입감 있는 경험을 제공합니다. |