Roblox 세션의 대부분은 마우스와 키보드가 있는 장치에서 플레이되므로, 넓은 청중을 위해 게임을 디자인할 때 이러한 입력을 지원하는 것이 중요합니다.
마우스/키보드를 포함한 크로스 플랫폼 입력을 단순화하기 위해, Roblox는 점프, 달리기, 사격 같은 액션을 정의하고 이러한 액션을 실행하기 위해 여러 하드웨어 입력에 대한 바인딩을 설정하는 입력 액션 시스템을 제공합니다.
Roblox는 UserInputService 이벤트인 InputBegan 및 InputEnded와 같은 일반 마우스/키보드 입력도 지원하며, 키보드에서 특정 키가 눌렸는지 확인하기 위한 IsKeyDown()와 같은 메서드도 제공합니다.
입력 유형 감지
크로스 플랫폼 개발에서는 플레이어가 사용하는 PreferredInput 유형을 확인하고 이에 대응하는 것이 중요합니다. 이는 일반적으로 UI 요소인 화면 버튼 및 메뉴가 스마트하게 작동하고 장치 간의 상호 작용을 지원하도록 보장하기 위함입니다.
예를 들어, PC나 노트북은 마우스/키보드를 기본 입력으로 가정하지만, 플레이어가 블루투스 게임패드를 연결하기로 선택할 수 있습니다. 이 경우 마우스/키보드는 여전히 유효한 입력이지만, 플레이어는 연결된 게임패드를 주 입력 유형으로 사용하고 싶어 한다고 가정할 수 있습니다.
자세한 내용은 입력 유형 감지를 참조하십시오.
일반 마우스/키 입력
입력 액션 시스템 외에도, UserInputService를 사용하여 마우스 및 키보드 입력을 캡처할 수 있습니다. 다음의 LocalScript는 StarterPlayerScripts 내에 배치되어 키 및 마우스 클릭의 시작 및 종료 단계를 캡처하고 결과를 출력 창에 출력합니다.
LocalScript - 키/마우스 시작 및 종료 출력
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(inputObject, processedEvent)
-- 다른 스크립트가 이미 입력을 처리했으면 반환
if processedEvent then return end
print(inputObject.KeyCode.Name, "시작!", inputObject.Position)
end
local function onInputEnded(inputObject, processedEvent)
-- 다른 스크립트가 이미 입력을 처리했으면 반환
if processedEvent then return end
print(inputObject.KeyCode.Name, "종료!", inputObject.Position)
end
UserInputService.InputBegan:Connect(onInputBegan)
UserInputService.InputEnded:Connect(onInputEnded)
마우스 아이콘
게임 내에서 플레이어의 마우스 아이콘의 모양과 동작을 사용자 정의하여 모든 UI 요소에서 일관된 스타일을 만들 수 있습니다. 여기에는 특정 상황에서 버튼에 마우스를 올리는 경우와 같이 플레이어의 마우스 아이콘을 일시적으로 변경하는 것이 포함됩니다.
LocalScript 내에서 MouseIcon 속성을 사용자 정의 Roblox 자산 ID로 설정하여 플레이어의 마우스 아이콘을 변경할 수 있습니다. 예를 들어, 다음의 LocalScript는 플레이어의 기본 마우스 아이콘을 가운데에 파란 점이 있는 원으로 변경합니다.
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"