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