InputObject
InputObject : Instance
Overview
화면 터치나 마우스, 키보드 입력 등 사용자 입력이 발생할 때 생성되는 객체입니다.
사용자의 입력 유형(UserInputType)와 입력 상태(UserInputState), 입력된 키(KeyCode)와 입력 위치(Position) 등의 속성을 통해 입력의 세부 사항을 확인할 수 있습니다.
이 객체는 다음과 같은 이벤트에서 생성됩니다:
UserInputService의 TouchStarted, TouchMoved, TouchEnded
UserInputService의 InputBegan, InputChanged, InputEnded
ContextActionService의 BindAction()에 연결된 함수
GuiButton의 InputBegan, InputChanged, InputEnded 이벤트
이 객체는 입력이 시작되는 시점부터 종료될 때까지 동일한 인스턴스로 유지되며, 입력 중 상태 변화는Changed 이벤트를 통해 감지할 수 있습니다. 이를 통해 현재 활성화된 입력들을 리스트로 관리하거나 해당 입력에 대해 계속 추적 및 제어할 수 있고, 모바일 환경에서 각 손가락 입력을 구분하여 처리할 수 있습니다.
InputObject는 UserInputService의 이벤트나 GuiObject의 입력 처리와 연계되어 사용됩니다.
Properties
Delta
Vector3
입력 위치의 변화량을 나타내는 값으로, Position 속성과 함께 사용하면 입력 경로를 추적할 수 있어 카메라 이동이나 캐릭터 조작과 같은 구현에서 유용하게 활용됩니다.
단, 키보드 입력처럼 위치 정보가 없는 입력 유형의 경우, Delta나 Position는 입력 시작 및 종료 이벤트에서만 확인할 수 있습니다.
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
print("KeyCode : ", keyCode)
print("InputState : ", inputState)
print("InputType : ", inputType)
print("Delta : ", delta)
print("Position : ", pos)
end
UserInputService.TouchStarted:Connect(OnScreenTouchStart)
KeyCode
Enum.KeyCode
입력에 사용된 키 정보를 나타내는 값으로, 모바일 환경에서 터치 입력과 가상 조이스틱 입력을 구분하는 용도로도 활용할 수 있습니다.
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
print("KeyCode : ", keyCode)
print("InputState : ", inputState)
print("InputType : ", inputType)
print("Delta : ", delta)
print("Position : ", pos)
end
UserInputService.TouchStarted:Connect(OnScreenTouchStart)
Position
Vector3
입력 위치를 나타내는 값으로, 마우스나 터치 입력시 X, Y 좌표는 화면상의 좌표를 의미합니다.
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
print("KeyCode : ", keyCode)
print("InputState : ", inputState)
print("InputType : ", inputType)
print("Delta : ", delta)
print("Position : ", pos)
end
UserInputService.TouchStarted:Connect(OnScreenTouchStart)
UserInputState
Enum.UserInputState
입력의 진행 상태를 나타내는 값으로, 시작, 변경, 종료, 취소 등 상태를 구분하여 입력의 흐름을 추적하거나 상태에 따른 처리를 구현할 때 유용하게 활용됩니다.
Code Samples
local UserInputService = game:GetService("UserInputService")
local function OnScreenTouchStart(input, _gameProcessed)
local inputState = input.UserInputState
print("InputState : ", inputState) -- Begin
end
UserInputService.TouchStarted:Connect(OnScreenTouchStart)
local function OnScreenTouchMove(input, _gameProcessed)
local inputState = input.UserInputState
print("InputState : ", inputState) -- Change
end
UserInputService.TouchMoved:Connect(OnScreenTouchMove)
local function OnScreenTouchEnd(input, _gameProcessed)
local inputState = input.UserInputState
print("InputState : ", inputState) -- End
end
UserInputService.TouchEnded:Connect(OnScreenTouchEnd)
UserInputType
Enum.UserInputType
입력의 종류를 나타내는 값으로, 터치, 키보드, 마우스 등 다양한 입력 방식을 구분할 수 있으며, KeyCode와는 별도로 입력 유형을 판별하는 데 사용됩니다.
Code Samples
local UserInputService = game:GetService("UserInputService")
local function OnScreenTouchStart(input, _gameProcessed)
local inputType = input.UserInputType
print("InputType : ", inputType) -- Touch
end
UserInputService.TouchStarted:Connect(OnScreenTouchStart)
Methods
Events
See also
모바일 조작 처리Last updated