UserInputService

UserInputService : Instance

Overview

사용자의 장치에서 발생하는 입력을 감지할 수 있도록 도와주는 클라이언트 전용 서비스입니다.

키보드, 마우스, 터치스크린 등 입력 장치에 따라 동작을 다르게 처리할 수 있어 플랫폼에 최적화된 사용자 경험을 구현할 수 있습니다.

이 서비스는 LocalScript와 같은 클라이언트 환경에서만 사용할 수 있습니다.

Properties

Methods

Events

TouchStarted

사용자가 화면을 터치 할 때 발생하는 이벤트입니다.

터치 기반 인터랙션의 시작점을 감지하는 데 유용하며, TouchMoved와 TouchEnded와 함께 사용하면, 터치의 시작부터 이동, 종료까지의 전체 과정을 효과적으로 추적할 수 있습니다.

Parameters

InputObject InputObject

입력과 관련된 세부 정보를 포함하는 객체이며, 하나의 터치 입력이 시작되고 끝날 때까지 동일한 인스턴스로 유지됩니다. 따라서 멀티 터치의 경우, 이 객체들을 비교하는 방식으로 확인할 수 있습니다.

  • Enum.KeyCode KeyCode: 입력된 키

  • Enum.UserInputState UserInputState: 입력 상태

  • Enum.UserInputType UserInputType: 입력 장치 종류

  • Vector3 Delta: 이동 변화량 (Z값은 0으로 고정)

  • Vector3 Position: 입력이 발생한 화면상의 위치 (Z값은 0으로 고정)

bool bGameProcessed

해당 입력이 화면 상의 UI 요소에 의해 이미 처리되었는지를 나타냅니다. 입력에 영향을 줄 수 있는 UI는 다음과 같습니다:

  • 채팅창, 메뉴 버튼 같은 시스템 UI

  • ContextActionService로 Bind된 버튼

  • ScreenGui, SurfaceGui내 Active가 켜진 Gui 버튼

Code Samples

local UserInputService = game:GetService("UserInputService")

local function OnScreenTouchStart(input, _gameProcessed)
    local keyCode = input.KeyCode        
    local inputState = input.UserInputState 
    local inputType = input.UserInputType   
    local delta = input.Delta
    local pos = input.Position    
end
UserInputService.TouchStarted:Connect(OnScreenTouchStart)

TouchMoved

사용자가 화면 위에서 손가락을 움직일 때 발생하는 이벤트입니다.

손가락이 어느 위치로 이동하고 있는지를 실시간으로 추적할 수 있어, 드래그, 스와이프와 같은 제스처 기반 입력을 감지하는 데 유용합니다.

Parameters

InputObject InputObject

입력과 관련된 세부 정보를 포함하는 객체이며, 하나의 터치 입력이 시작되고 끝날 때까지 동일한 인스턴스로 유지됩니다. 따라서 멀티 터치의 경우, 이 객체들을 비교하는 방식으로 확인할 수 있습니다.

  • Enum.KeyCode KeyCode: 입력된 키

  • Enum.UserInputState UserInputState: 입력 상태

  • Enum.UserInputType UserInputType: 입력 장치 종류

  • Vector3 Delta: 이동 변화량 (Z값은 0으로 고정)

  • Vector3 Position: 입력이 발생한 화면상의 위치 (Z값은 0으로 고정)

bool bGameProcessed

해당 입력이 화면 상의 UI 요소에 의해 이미 처리되었는지를 나타냅니다. 입력에 영향을 줄 수 있는 UI는 다음과 같습니다:

  • 채팅창, 메뉴 버튼 같은 시스템 UI

  • ContextActionService로 Bind된 버튼

  • ScreenGui, SurfaceGui내 Active가 켜진 Gui 버튼

Code Samples

local UserInputService = game:GetService("UserInputService")

local function OnScreenTouchMove(input, _gameProcessed)
    local keyCode = input.KeyCode        
    local inputState = input.UserInputState 
    local inputType = input.UserInputType   
    local delta = input.Delta
    local pos = input.Position 
end
UserInputService.TouchMoved:Connect(OnScreenTouchMove)

TouchEnded

사용자가 화면에서 손가락을 떼는 순간 발생하는 이벤트입니다.

이 이벤트는 터치 입력의 종료 시점을 감지하는 데 사용됩니다.

Parameters

InputObject InputObject

입력과 관련된 세부 정보를 포함하는 객체이며, 하나의 터치 입력이 시작되고 끝날 때까지 동일한 인스턴스로 유지됩니다. 따라서 멀티 터치의 경우, 이 객체들을 비교하는 방식으로 확인할 수 있습니다.

  • Enum.KeyCode KeyCode: 입력된 키

  • Enum.UserInputState UserInputState: 입력 상태

  • Enum.UserInputType UserInputType: 입력 장치 종류

  • Vector3 Delta: 이동 변화량 (Z값은 0으로 고정)

  • Vector3 Position: 입력이 발생한 화면상의 위치 (Z값은 0으로 고정)

bool bGameProcessed

해당 입력이 화면 상의 UI 요소에 의해 이미 처리되었는지를 나타냅니다. 입력에 영향을 줄 수 있는 UI는 다음과 같습니다:

  • 채팅창, 메뉴 버튼 같은 시스템 UI

  • ContextActionService로 Bind된 버튼

  • ScreenGui, SurfaceGui내 Active가 켜진 Gui 버튼

Code Samples

local UserInputService = game:GetService("UserInputService")

local function OnScreenTouchEnd(input, _gameProcessed)
    local keyCode = input.KeyCode        
    local inputState = input.UserInputState 
    local inputType = input.UserInputType   
    local delta = input.Delta
    local pos = input.Position 
end
UserInputService.TouchEnded:Connect(OnScreenTouchEnd)

InputBegan

사용자가 화면을 클릭하거나, 마우스, 키보드 등으로 입력을 시작할 때 발생하는 이벤트입니다.

InputChanged와 InputEnded와 함께 사용하면, 입력의 시작부터 이동, 종료까지의 전체 과정을 효과적으로 추적할 수 있습니다.

다만, 모바일 환경에서는 사용을 권장하지 않으며, 스튜디오에서의 테스트나 시뮬레이션 용도로 사용하는 것이 적합합니다. 모바일 환경에서는 TouchStarted, TouchMoved, TouchEnded 이벤트를 사용하는 것이 권장됩니다.

Parameters

InputObject InputObject

입력과 관련된 세부 정보를 포함하는 객체이며, 하나의 입력이 시작되고 끝날 때까지 동일한 인스턴스로 유지됩니다.

  • Enum.KeyCode KeyCode: 입력된 키

  • Enum.UserInputState UserInputState: 입력 상태

  • Enum.UserInputType UserInputType: 입력 장치 종류

  • Vector3 Delta: 이동 변화량 (Z값은 0으로 고정)

  • Vector3 Position: 입력이 발생한 화면상의 위치 (Z값은 0으로 고정)

bool bGameProcessed

해당 입력이 화면 상의 UI 요소에 의해 이미 처리되었는지를 나타냅니다. 입력에 영향을 줄 수 있는 UI는 다음과 같습니다:

  • 채팅창, 메뉴 버튼 같은 시스템 UI

  • ContextActionService로 Bind된 버튼

  • ScreenGui, SurfaceGui내 Active가 켜진 Gui 버튼

Code Samples

local UserInputService = game:GetService("UserInputService")

local function OnScreenTouchStart(input, _gameProcessed)
    local keyCode = input.KeyCode        
    local inputState = input.UserInputState 
    local inputType = input.UserInputType   
    local delta = input.Delta
    local pos = input.Position    
end
UserInputService.InputBegan:Connect(OnScreenTouchStart)

InputChanged

사용자가 화면을 클릭한 상태에서 마우스 커서를 움직일 때 발생하는 이벤트입니다

마우스 커서가 어느 위치로 이동하고 있는지를 실시간으로 추적할 수 있어, 드래그, 스와이프와 같은 제스처 기반 입력을 감지하는 데 유용합니다.

다만, 모바일 환경에서는 사용을 권장하지 않으며, 스튜디오에서의 테스트나 시뮬레이션 용도로 사용하는 것이 적합합니다. 모바일 환경에서는 TouchStarted, TouchMoved, TouchEnded 이벤트를 사용하는 것이 권장됩니다.

Parameters

InputObject InputObject

입력과 관련된 세부 정보를 포함하는 객체이며, 하나의 입력이 시작되고 끝날 때까지 동일한 인스턴스로 유지됩니다.

  • Enum.KeyCode KeyCode: 입력된 키

  • Enum.UserInputState UserInputState: 입력 상태

  • Enum.UserInputType UserInputType: 입력 장치 종류

  • Vector3 Delta: 이동 변화량 (Z값은 0으로 고정)

  • Vector3 Position: 입력이 발생한 화면상의 위치 (Z값은 0으로 고정)

bool bGameProcessed

해당 입력이 화면 상의 UI 요소에 의해 이미 처리되었는지를 나타냅니다. 입력에 영향을 줄 수 있는 UI는 다음과 같습니다:

  • 채팅창, 메뉴 버튼 같은 시스템 UI

  • ContextActionService로 Bind된 버튼

  • ScreenGui, SurfaceGui내 Active가 켜진 Gui 버튼

Code Samples

local UserInputService = game:GetService("UserInputService")

local function OnScreenTouchMove(input, _gameProcessed)
    local keyCode = input.KeyCode        
    local inputState = input.UserInputState 
    local inputType = input.UserInputType   
    local delta = input.Delta
    local pos = input.Position 
end
UserInputService.InputChanged:Connect(OnScreenTouchMove)

InputEnded

사용자가 화면 클릭, 마우스, 키보드 등의 입력을 종료할 때 발생하는 이벤트입니다.

이 이벤트는 입력의 종료 시점을 감지하는 데 사용됩니다.

다만, 모바일 환경에서는 사용을 권장하지 않으며, 스튜디오에서의 테스트나 시뮬레이션 용도로 사용하는 것이 적합합니다. 모바일 환경에서는 TouchStarted, TouchMoved, TouchEnded 이벤트를 사용하는 것이 권장됩니다.

Parameters

InputObject InputObject

입력과 관련된 세부 정보를 포함하는 객체이며, 하나의 입력이 시작되고 끝날 때까지 동일한 인스턴스로 유지됩니다.

  • Enum.KeyCode KeyCode: 입력된 키

  • Enum.UserInputState UserInputState: 입력 상태

  • Enum.UserInputType UserInputType: 입력 장치 종류

  • Vector3 Delta: 이동 변화량 (Z값은 0으로 고정)

  • Vector3 Position: 입력이 발생한 화면상의 위치 (Z값은 0으로 고정)

bool bGameProcessed

해당 입력이 화면 상의 UI 요소에 의해 이미 처리되었는지를 나타냅니다. 입력에 영향을 줄 수 있는 UI는 다음과 같습니다:

  • 채팅창, 메뉴 버튼 같은 시스템 UI

  • ContextActionService로 Bind된 버튼

  • ScreenGui, SurfaceGui내 Active가 켜진 Gui 버튼

Code Samples

local UserInputService = game:GetService("UserInputService")

local function OnScreenTouchEnd(input, _gameProcessed)
    local keyCode = input.KeyCode        
    local inputState = input.UserInputState 
    local inputType = input.UserInputType   
    local delta = input.Delta
    local pos = input.Position 
end
UserInputService.InputEnded:Connect(OnScreenTouchEnd)

See also

모바일 조작 처리

Last updated