Choose your operating system:
Windows
macOS
Linux
이번 단계에서는 캐릭터의 시야 및 이동방향을 마우스로 조정하는 기능을 추가하겠습니다.
턴 축 매핑
-
편집 메뉴에서 프로젝트 세팅 에 클릭 합니다.
-
프로젝트 세팅 탭 왼편의 엔진 제목줄 아래 입력 에 클릭 합니다.
-
바인딩 아래, 축 매핑 옆의 더하기 부호를 클릭 합니다.
-
축 매핑 왼편의 화살표를 클릭 합니다.
-
뜨는 글상자에 Turn 이라 입력한 뒤 글상자 왼쪽의 화살표를 클릭 하여 축 바인딩 옵션을 펼칩니다.
-
드롭다운 메뉴의, 마우스 드롭다운 목록에서 Mouse X 를 선택합니다.
-
입력 세팅은 이제 다음과 같은 모습일 것입니다:
쳐다보기 축 매핑
-
바인딩 아래, 축 매핑 옆 더하기 부호를 클릭 합니다.
-
뜨는 글상자에 LookUp 이라 입력한 뒤, 글상자 왼쪽의 화살표를 클릭하여 축 바인딩 옵션을 펼칩니다.
-
드롭다운 메뉴의, 마우스 드롭다운 목록에서 Mouse Y 를 선택합니다.
-
Mouse Y 옆의 Scale 칸에 -1.0 이라 입력합니다.
-
입력 세팅이 다음과 같아 보일 것입니다:
-
프로젝트 세팅 메뉴를 닫습니다.
입력 처리 구현
회전과 쳐다보기에 대한 마우스 입력 처리를 하는 코드를 추가할 차례입니다.
Character
베이스 클래스는 다음과 같은 필수 함수 둘을 정의합니다:
-
AddControllerYawInput
-
AddControllerPitchInput
마우스 감도나 축 반전과 같은 추가 처리를 해 주려거든, 입력 값을 함수에 전달하기 전 별도의 조정을 가하는 함수를 추가해 주면 되지만, 여기서는 입력을 바로
AddControllerYawInput
과
AddControllerPitchInput
함수에 바인딩하도록 하겠습니다.
-
FPSCharacter.cpp
의SetupPlayerInputComponent
에 다음 줄을 추가합니다.// "look" 바인딩 구성 PlayerInputComponent->BindAxis("Turn", this, &AFPSCharacter::AddControllerYawInput); PlayerInputComponent->BindAxis("LookUp", this, &AFPSCharacter::AddControllerPitchInput);
-
SetupPlayerInputComponent
함수는 이제 다음과 같아 보일 것입니다:// 함수성을 입력에 바인딩하기 위해 호출됩니다. void AFPSCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); // "movement" 바인딩을 구성합니다. PlayerInputComponent->BindAxis("MoveForward", this, &AFPSCharacter::MoveForward); PlayerInputComponent->BindAxis("MoveRight", this, &AFPSCharacter::MoveRight); // "look" 바인딩을 구성합니다. PlayerInputComponent->BindAxis("Turn", this, &AFPSCharacter::AddControllerYawInput); PlayerInputComponent->BindAxis("LookUp", this, &AFPSCharacter::AddControllerPitchInput); }
마우스 카메라 컨트롤 테스트
-
Visual Studio 에서
FPSCharacter
구현 파일을 저장합니다. -
Solution Explorer 에서 FPSProject 를 찾습니다.
-
FPSProject 에 우클릭하고 Build 를 선택하여 프로젝트를 컴파일합니다.
-
빌드 완료후, 언리얼 에디터에서 FPSProject 를 엽니다.
-
레벨 에디터 툴바에서 플레이 버튼을 클릭 합니다. 이제 카메라를 마우스로 제어할 수 있습니다.
-
Esc 키를 누르거나 레벨 에디터에서 중지 버튼을 클릭하여 에디터에서 플레이(PIE) 모드를 빠져나갑니다.