Roblox 세션의 대부분이 마우스와 키보드가 있는 장치에서 재생되므로 넓은 대상을 위한 경험을 디자인할 때 이러한 입력을 올바르게 지원하는 것이 중요합니다. 마우스와 키보드 입력을 설정하면 모바일 및 게임 패드 입력을 지원하는 것으로 경험을 크
편의를 위해 Roblox는 가장 일반적인 마우스 및 키보드 입력을 기본 바인딩으로 설정하며, 예약된 바인딩을 제외하고는 덮어쓸 수 있습니다.
일반적인 마우스 입력
모든 장치 입력과 마찬가지로, 이 서비스는 UserInputService 를 사용하여 마우스 입력 변경 및 장치 입력 상태를 캡처할 수 있습니다. Roblox는 또한 전역 마우스 입력 감지를 위해 PlayerMouse 및 ClickDetectors 를 지
또한, 컨텍스트에 따라 도구를 사용하거나 바위 근처에 있는 도구를 사용하거나 건설내에 있는 문을 열 등의 여러 작업을 처리하려면 ContextActionService를 사용할 수 있습니다. 컨텍스트 독립 입력 작업에 대한 자세한 내용은 컨텍스트 독립 입력 작업을 참조하십시오.
다음 LocalScript, StarterPlayerScripts 에 배치되면 마우스 클릭을 수집하고 마우스 위치를 출력 창에 프린트합니다.
로컬 스크립트 - 마우스 클릭 및 위치 출력
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 내에서만 작동합니다.
다음 Class.LocalScript, Class.StarterPlayerScripts 에 배치되면 압력된 키를 0>Output0> 창으로 인쇄합니다.
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 요소와 함께 작동하며, TextButtons 및 ImageButtons , 그리고 마지막으로 모양의 필드처럼 텍스트 입력을 수집하는 TextBoxes 도 있습니다.
버튼 및 텍스트 입력 개체에 대한 자세한 내용은 버튼 및 텍스트 입력 을 참조하십시오.
캐릭터 이동 모드
Roblox 경험에 대해 마우스 및 키보드 이동 제어 스키마를 설정하려면 StarterPlayer.DevComputerMovementMode 값을 팔로잉중 하나로 변경할 수 있습니다.
옵션 | 설명 |
---|---|
사용자 선택 | 사용자가 경험 내 메뉴에서 원하는 제어 메커니즘을 선택할 수 있습니다. 이 옵션은 기본적으로 활성화됩니다. |
키보드 마우스 | 사용자는 WASD를 눌러 이동하고 1>공간1>을 점프할 수 있습니다. 이는 키보드 및 마우스 사용자에 대한 기본 설정입니다. 4>사용자 선택4> 설정에 대한 키보드 및 마우스 사용자에 대한 기본 설정입니다. |
클릭 이동 | 사용자는 대상 위치를 마우스 오른쪽 버튼으로 클릭하여 경험을 통과할 수 있습니다. |
스크립트 가능 | 모든 기본 컨트롤을 비활성화하고 사용자 컨트롤을 바인딩할 수 있습니다. |
마우스 아이콘
사용자의 마우스 아이콘을 경험에 사용자 지정하여 모든 UI 요소에 대해 일관된 스타일을 만들 수 있습니다. 여기에는 버튼을 마우스 아이콘 위에 마우스를 이동하는 등의 특정 상황에서 사용자의 마우스 아이콘을 임시로 변경하는 것이 포함됩니다.
아이콘 변경
Class.UserInputService.MouseIcon|MouseIcon 속성을 설정하여 사용자의 마우스 아이콘을 MouseIcon에 사용자 지정 Roblox 자산 ID로 변경할 수 있습니다. 예를 들어, 다음 UserInputService 는 사용자의 기본 마우스
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"
아이콘 숨기기
사용자의 마우스 아이콘을 숨기려면 UserInputService.MouseIconEnabled 를 false 로 설정하고 LocalScript 에 있는 다음 코드를 변경합니다. 예를 들어, 다음 코드는 마우스 아이콘을 보이지 않게 하고 매 2초마다 다시 보이게 합니다.
local UserInputService = game:GetService("UserInputService")while true dotask.wait(2)UserInputService.MouseIconEnabled = falsetask.wait(2)UserInputService.MouseIconEnabled = trueend
아이콘 잠금
Class.UserInputService.MouseBehavior 를 사용하여 마우스 아이콘의 위치를 화면에 고정하고 Enum.MouseBehavior 의 LockCurrentPosition 또는 1>Class.MouseBehavior|LockCenter1> 값으로 잠금을 해제한 다음 다시 ��
사용자의 마우스 아이콘이 위치에 고정되어 있으면 UserInputService.InputChanged 는 사용자가 마우스를 이동할 때 여전히 실행되지만, 마우스가 이동한 거리를 표시하는 데 도움이 됩니다. 예를 들어, 다음 코드 샘플은 사용자의 마우스 아이콘을 1초 후에 �����
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 기능, 예를 들어 백팩 또는 채팅 은 기본 입력 목록을 포함합니다. 0>이스크립트0> (Roblox 메뉴) 또는 Enum.CoreGuiType3> (개발자 콘솔)를 작성하는 것은 권장되지 않습니다.
이 바인딩은 Roblox 기본입니다. 하지만 사용자 지정 스크립트로 그들을 재정의할 수 있습니다. 대부분의 Roblox 사용자는 이 제어익숙하지만, 특정 경우에만 그들을 재정의해야 합니다.
입력 | 액션 |
---|---|
W위로 | 앞으로 이동 |
S↓ | 이전으로 뒤로 |
A | 왼쪽으로 이동 |
D | 오른쪽으로 이동 |
스페이스 바 | 점프 |
←→ | 카메라를 왼쪽이나 오른쪽으로 회전 |
오른쪽 마우스 버튼 | 누르고 마우스를 드래그하면 카메라 뷰가 이동합니다. |
마우스 스크롤 휠 IO | 카메라를 확대하거나 축소 |
Shift | Class.StarterPlayer.EnableMouseLockOption|EnableMouseLockOption이 활성화된 경우 마우스 잠금을 토글합니다. |