마우스 및 키보드 입력

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

Roblox 세션의 큰 비율이 마우스와 키보드가 있는 장치에서 재생되므로 광범위한 대상을 위한 경험을 디자인할 때 이러한 입력을 적절하게 지원하는 것이 중요합니다.마우스 및 키보드 입력에 익숙해지면 모바일게임패드 입력을 설정하여 여러 플랫폼에서 경험을 호환하게 만듭니다.

편의를 위해 Roblox는 가장 일반적인 마우스 및 키보드 입력을 기본 바인딩으로 설정하며, 예약된 바인딩을 제외하고 재정의할 수 있습니다.

일반 마우스 입력

모든 장치 입력과 마찬가지로, UserInputService를 사용하여 마우스 입력을 캡처할 수 있습니다.이 서비스는 한 번에 여러 장치의 입력 변경 및 장치 입력 상태를 확인할 수 있는 확장 가능한 방법을 제공합니다.Roblox는 또한 레거시 마우스 입력 검색을 PlayerMouseClickDetectors로 지원합니다.

또한, 컨텍스트에 따라 단일 입력에서 여러 작업을 처리하기 위해 ContextActionService를 사용할 수 있습니다, 예를 들어 바위 근처에서 도구를 사용하거나 건설내에서 문을 열 때.컨텍스트 종속 입력에 대한 정보는 컨텍스트 특정 입력 작업 설정에 참조하십시오.

다음 LocalScriptStarterPlayerScripts 에 배치되면 마우스 클릭을 캡처하고 마우스 위치를 출력 창에 인쇄합니다.

로컬스크립트 - 출력 마우스 클릭 및 위치

local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- 먼저 "처리된 이벤트"가 진실인지 확인합니다
-- 이는 다른 스크립트가 이미 입력을 처리했기 때문에 이 스크립트는 무시된다는 것을 나타냅니다
if processedEvent then return end
-- 다음으로, 입력이 마우스 이벤트인지 확인합니다
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 then
print("Left Mouse button was pressed:", inputObject.Position)
elseif inputObject.UserInputType == Enum.UserInputType.MouseButton2 then
print("Right Mouse button was pressed:", inputObject.Position)
end
end
UserInputService.InputEnded:Connect(onInputEnded)

일반 키보드 입력

키보드 이벤트에 액세스하려면 UserInputService.InputEnded 이벤트를 사용하여 언제든지 키스트로크 또는 다른 입력이 끝나는 시점을 추적합니다.마우스 이벤트와 비슷하게, 이 이벤트는 LocalScript 작동합니다.

다음 , 을 배치하면 , 누른 키의 을 출력 창에 인쇄합니다:


local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- 먼저 "처리된 이벤트"가 진실인지 확인합니다
-- 이는 다른 스크립트가 이미 입력을 처리했기 때문에 이 스크립트는 무시된다는 것을 나타냅니다.
if processedEvent then return end
-- 다음으로, 입력이 키보드 이벤트인지 확인하십시오
if inputObject.UserInputType == Enum.UserInputType.Keyboard then
print("A key was released: " .. inputObject.KeyCode.Name)
end
end
UserInputService.InputEnded:Connect(onInputEnded)

UI 입력

마우스와 키보드 입력은 자동으로 상호 작용하는 UI 요소(TextButtonsImageButtons 및 양식의 필드와 같은 텍스트 입력을 캡처하는 TextBoxes와 함께)와 함께 작동하며, 텍스트 입력을 필드처럼 캡처하는 것과 마찬가지로 작동합니다.

버튼 및 텍스트 입력 개체 생성에 대한 자세한 정보는 버튼텍스트 입력을 참조하십시오.

문자 이동 모드

StarterPlayer.DevComputerMovementMode 값을 변경하여 Roblox 경험에 마우스 및 키보드 이동 제어 스키마를 설정할 수 있습니다.

옵션설명
사용자 선택 경험 내 메뉴에서 사용자가 원하는 제어 스키마를 선택할 수 있도록 합니다. 이 옵션은 기본적으로 활성화됩니다.
키보드마우스 사용자는 이동하려면 WASD 을 누르고 점프하려면 Space 을 누를 수 있습니다.이는 사용자 선택 설정에 대한 키보드 및 마우스 사용자의 기본 설정입니다.
클릭하여 이동 사용자는 대상 위치를 마우스 오른쪽 버튼으로 클릭하여 경험을 이동할 수만 있습니다.
스크립트 가능 모든 기본 컨트롤을 비활성화하고 자신의 컨트롤을 바인딩할 수 있도록 허용합니다.

마우스 아이콘

경험 내에서 사용자의 마우스 아이콘의 모양과 동작을 사용자 지정하여 모든 UI 요소에서 일관된 스타일을 만들 수 있습니다.여기에는 버튼을 가리키는 등의 특정 상황에서 사용자의 마우스 아이콘을 일시적으로 변경하는 것이 포함됩니다.

아이콘 변경

사용자의 마우스 아이콘을 변경하려면 LocalScript 에서 MouseIcon 속성을 사용자 지정 Roblox 자산 ID로 설정하여 UserInputService 에 배치합니다.예를 들어, 다음 LocalScript 변경은 사용자의 기본 마우스 아이콘을 중앙에 있는 파란색 점으로 원으로 변경합니다.


local UserInputService = game:GetService("UserInputService")
UserInputService.MouseIcon = "rbxassetid://3400146391"

아이콘 숨기기

사용자의 마우스 아이콘을 숨기려면 UserInputService.MouseIconEnabled에서 false로 설정하여 LocalScript에 배치할 수 있습니다.예를 들어 다음 코드는 마우스 아이콘을 2초마다 보이지 않게 전환하고 다시 표시합니다:


local UserInputService = game:GetService("UserInputService")
while true do
task.wait(2)
UserInputService.MouseIconEnabled = false
task.wait(2)
UserInputService.MouseIconEnabled = true
end

아이콘 잠금

마우스 아이콘의 위치를 값으로 화면에 고정하고 또는 값으로 다시 잠금 해제할 수 있습니다.

사용자의 마우스 아이콘이 위치에 잠겨 있으면, UserInputService.InputChanged 사용자가 마우스를 이동할 때 여전히 발생하며, 마우스가 이동한 거리를 전달합니다.예를 들어, 다음 코드 샘플은 1초 후에 사용자의 마우스 아이콘을 잠그고, 사용자가 마우스를 이동할 때마다 Studio가 마우스 델타를 인쇄합니다.


local UserInputService = game:GetService("UserInputService")
task.wait(5)
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
UserInputService.InputChanged:Connect(function(inputObject)
if inputObject.UserInputType == Enum.UserInputType.MouseMovement then
print("Mouse delta is (" .. tostring(inputObject.Delta.X) .. ", " .. tostring(inputObject.Delta.Y) .. ")")
end
end)

Roblox 기본 바인딩

Roblox는 모든 경험에 대한 기본 키 바인딩을 제공합니다.이들은 이동, 카메라 제어 및 기본 환경 상호 작용에 사용되는 가장 일반적인 입력입니다.예약된 바인딩을 제외하고, ContextActionService 를 사용하여 컨텍스트에 따라 다양한 바인딩을 단일 액션우선시하는 크로스 플랫폼 바인딩을 만들 수 있습니다, 컨텍스트에 따른 입력에 설명된 대로.

Enum.CoreGuiType 기능, 예를 들어 백팩 또는 채팅 , 추가 기본 입력 목록이 있습니다.Esc (Roblox 메뉴) 또는 F9 (개발자 콘솔)와 같은 예약된 입력을 덮어쓸 수 없습니다.

이러한 바인딩은 Roblox 기본값이지만 사용자 지정 스크립트로 재정의할 수 있습니다.대부분의 Roblox 사용자는 이러한 제어익숙하므로 특정 경우에만 재정의해야 합니다.

입력액션
W앞으로 이동
S뒤로 이동
A왼쪽으로 이동
D오른쪽으로 이동
Spacebar점프
카메라 회전 왼쪽이나 오른쪽
오른쪽 마우스 버튼 누르고 마우스를 드래그하면 카메라 뷰가 이동합니다
마우스 스크롤 휠 IO카메라 확대 또는 축소
ShiftEnableMouseLockOption이 활성화되어 있으면 마우스 잠금 전환