ContextActionService

ContextActionService : Instance

Overview

ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ํ™œ์„ฑํ™”๋˜๋Š” ๋™์ž‘์„ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์œผ๋กœ, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํŠน์ • ๋„๊ตฌ๋ฅผ ์žฅ์ฐฉํ–ˆ์„ ๋•Œ๋‚˜, ์–ด๋–ค ์œ„์น˜์— ์žˆ์„ ๋•Œ๋งŒ ๋ฒ„ํŠผ ์ž…๋ ฅ์ด ์ž‘๋™ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ์ž…๋ ฅ ๋™์ž‘์€ ๋ฌธ์ž์—ด๋กœ ์ •์˜๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์–ด๋–ค ์ž…๋ ฅ ๊ธฐ๋Šฅ์ธ์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ด๋ฆ„์— ์—ฌ๋Ÿฌ ๋™์ž‘์ด ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ, ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋ฐ”์ธ๋”ฉ๋œ ๋™์ž‘์ด ์šฐ์„  ์ ์šฉ๋˜๋ฉฐ, ํ•ด์ œ๋˜๋ฉด ์ด์ „์— ์—ฐ๊ฒฐ๋œ ๋™์ž‘์ด ๋‹ค์‹œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

์ด ์‹œ์Šคํ…œ์€ ํด๋ผ์ด์–ธํŠธ ํ™˜๊ฒฝ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ปจํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž…๋ ฅ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด, ๋ณต์žกํ•œ ์ƒํƒœ ํ™•์ธ ์—†์ด๋„ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋™์ž‘์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ํ‚ค๋ณด๋“œ๋‚˜ ํ„ฐ์น˜ ์ž…๋ ฅ์ด ํ•จ๊ป˜ ์—ฐ๋™๋˜์–ด ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์ผ๊ด€๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Properties

Methods

BindAction

ํŠน์ • ๋ฌธ์ž์—ด์— ์ž…๋ ฅ ๋™์ž‘์„ ์ •์˜ํ•˜๊ณ , ํ•ด๋‹น ์ž…๋ ฅ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์—ฐ๊ฒฐ๋œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์ •ํ•œ ํ‚ค๋ณด๋“œ ํ‚ค๋‚˜ ํ„ฐ์น˜ ๋ฒ„ํŠผ์ด ๋ˆŒ๋ฆด ๊ฒฝ์šฐ, ์ž…๋ ฅ ์ •๋ณด์™€ ์ž…๋ ฅ ์ƒํƒœ๊ฐ€ ์—ฐ๊ฒฐ๋œ ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

Parameters

string ActionName

๋™์ž‘์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

Value FunctionToBind

์ž…๋ ฅ์ด ๊ฐ์ง€๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜๋กœ, ์—ฐ๊ฒฐ๋œ ํ•จ์ˆ˜์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ์ž๋“ค์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค:

  • string ActionName: BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

  • Enum.UserInputState: ์ž…๋ ฅ ์ƒํƒœ

  • InputObject InputObject: ์ž…๋ ฅ๊ณผ ๊ด€๋ จ๋œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

bool bCreateTouchButton

๋™์ž‘์„ ์‹คํ–‰ํ•  ๋ฒ„ํŠผ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

Tuple InputType

Enum.KeyCode๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ž‘์„ ์‹คํ–‰ํ•  ํ‚ค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‚ค๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Return

void

Code Samples

local ContextActionService = game:GetService("ContextActionService")
local ActionName = "JumpAction"
local IsCreateTouchButton = true
local KeyCode = Enum.KeyCode.F

local function OnAction(actionName, inputState, inputObject)
    if inputState == Enum.UserInputState.Begin then
        print(actionName .. " triggered!")
    end
end
ContextActionService:BindAction(ActionName, OnAction, IsCreateTouchButton, KeyCode)

UnbindAction

ํŠน์ • ๋ฌธ์ž์—ด์— ์ •์˜๋œ ์ž…๋ ฅ ๋™์ž‘์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

Parameters

string ActionName

BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

Return

void

Code Samples

local ContextActionService = game:GetService("ContextActionService")
local ActionName = "JumpAction"

ContextActionService:UnbindAction(ActionName)

GetAllBoundActionInfo

๋ฐ”์ธ๋”ฉ๋œ ๋ชจ๋“  ์•ก์…˜ ์ •๋ณด๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๋œ ํ…Œ์ด๋ธ”์€ ๊ฐ ์•ก์…˜์˜ ์ด๋ฆ„์„ ํ‚ค๋กœ ํ•˜๋ฉฐ, ํ•ด๋‹น ์ด๋ฆ„์„ GetBoundActionInfo()์— ์ „๋‹ฌํ–ˆ์„ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ƒ์„ธ ์ •๋ณด๊ฐ€ ๊ฐ’์œผ๋กœ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์•ก์…˜์ด ๋™์‹œ์— ๋ฐ”์ธ๋”ฉ๋˜์–ด ์žˆ์„ ๋•Œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€, ๋˜๋Š” ์–ด๋–ค ์•ก์…˜์ด ๋ฎ์–ด์“ฐ๊ธฐ ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Parameters

Return

Dictionary

๋ฐ”์ธ๋”ฉ๋œ ๋ชจ๋“  ์•ก์…˜ ์ •๋ณด๊ฐ€ ๊ตฌ์„ฑ๋œ ๋”•์…”๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค.

Code Samples

local ContextActionService = game:GetService("ContextActionService")
local AllActions = ContextActionService:GetAllBoundActionInfo()

for actionName, actionInfo in pairs(AllActions) do
    print("Action Name : ", actionName)
    print("Input Types : ", actionInfo.InputTypes) 
end

GetBoundActionInfo

ํŠน์ • ์•ก์…˜ ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ, ๊ทธ ์•ก์…˜์— ๋ฐ”์ธ๋”ฉ๋œ ์ž…๋ ฅ ์ •๋ณด์™€ ์†์„ฑ๋“ค์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Parameters

string ActionName

BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

Return

Dictionary

์•ก์…˜ ์ •๋ณด๊ฐ€ ๊ตฌ์„ฑ๋œ ๋”•์…”๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค.

Code Samples

local ContextActionService = game:GetService("ContextActionService")
local ActionName = "JumpAction"
local ActionInfo = ContextActionService:GetBoundActionInfo(ActionName)

if ActionInfo then
    print("Action Name : ", ActionName)
    print("Input Types : ", ActionInfo.InputTypes) 
else
    print("Action not found.")
end

SetDescription

BindAction()์„ ํ†ตํ•ด ์ •์˜๋œ ์•ก์…˜์— ์„ค๋ช… ํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์„ค์ •ํ•œ ํ…์ŠคํŠธ๋Š” UI์ง์ ‘ ํ‘œ์‹œ๋˜์ง€๋Š” ์•Š์œผ๋ฉฐ, ์•ก์…˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Parameters

string ActionName

BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

string InDescription

์„ค์ •ํ•  ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

Return

void

Code Samples

local ContextActionService = game:GetService("ContextActionService")

ContextActionService:SetDescription(ActionName, "Press the button to jump.")

for actionName, actionInfo in pairs(AllActions) do
    print("Action Name : ", actionName)
    print("Description : ", actionInfo.Description) 
end

SetImage

BindAction()์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ํ„ฐ์น˜ ๋ฒ„ํŠผ์— ์ด๋ฏธ์ง€๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

Parameters

string ActionName

BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

string ImageId

ํ„ฐ์น˜ ๋ฒ„ํŠผ์— ํ‘œ์‹œํ•  ์ด๋ฏธ์ง€์˜ AssetId์ž…๋‹ˆ๋‹ค.

Return

void

Code Samples

ContextActionService:SetImage(ActionName, "ovdrassetid://1234")

SetPosition

BindAction()์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ํ„ฐ์น˜ ๋ฒ„ํŠผ์˜ ํ™”๋ฉด ๋‚ด ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

Parameters

string ActionName

BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

UDim2 InPosition

์„ค์ •ํ•  ์œ„์น˜์ž…๋‹ˆ๋‹ค.

Return

void

Code Samples

local ContextActionService = game:GetService("ContextActionService")
local ActionName = "JumpAction"

ContextActionService:SetPosition(ActionName, UDim2.new(0.5, 0, 0.8, 0))

SetTitle

BindAction()์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ํ„ฐ์น˜ ๋ฒ„ํŠผ์— ํ‘œ์‹œ๋˜๋Š” ๊ธ€์ž๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

Parameters

string ActionName

BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

string InTitle

์„ค์ •ํ•  ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

Return

void

Code Samples

local ContextActionService = game:GetService("ContextActionService")
local ActionName = "JumpAction"

ContextActionService:SetTitle(ActionName, "Action")

GetButton

BindAction()์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ํ„ฐ์น˜ ๋ฒ„ํŠผ์„ ImageButton ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ„ฐ์น˜ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์•ก์…˜์ธ ๊ฒฝ์šฐ, nil์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Parameters

string ActionName

BindAction()์— ์˜ํ•ด ์ •์˜๋œ ๋™์ž‘์˜ ์ด๋ฆ„

Return

Instance

์ƒ์„ฑ๋œ ํ„ฐ์น˜ ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค.

Code Samples

local ContextActionService = game:GetService("ContextActionService")
local ActionName = "JumpAction"

local ActionButton = ContextActionService:GetButton(ActionName)
print(ActionButton)

Events

LocalToolEquipped

ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋„๊ตฌ๋ฅผ ์žฅ์ฐฉํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.

Parameters

Tool Tool

์žฅ์ฐฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Code Samples

local ContextActionService = game:GetService("ContextActionService")

local function OnToolEquipped(tool)
    print("OnToolEquipped")
end
ContextActionService.LocalToolEquipped:Connect(OnToolEquipped)

LocalToolUnequipped

ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์žฅ์ฐฉํ•œ ๋„๊ตฌ๋ฅผ ํ•ด์ œํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.

Parameters

Tool Tool

์žฅ์ฐฉ ํ•ด์ œํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Code Samples

local ContextActionService = game:GetService("ContextActionService")

local function OnToolUnequipped(tool)
    print("OnToolUnequipped")
end
ContextActionService.LocalToolUnequipped:Connect(OnToolUnequipped)

See also

๋ชจ๋ฐ”์ผ ์กฐ์ž‘ ์ฒ˜๋ฆฌ

Last updated