빠른 시작
패키지 가져오기
패키지 가져오기 과정에서 발생하는 일반적인 문제를 해결하기 위해 다음 단계별 가이드를 따라주세요.
- 새로운 Unity 3D 프로젝트를 만듭니다. Unity 2022.3.20f1을 사용하는 것을 권장합니다.
- 패키지 관리자를 열고 BR200 패키지를 가져옵니다.
- 프로젝트 설정 덮어쓰기 경고가 뜨면 가져오기를 선택합니다.
- 패키지 종속성 경고가 뜨면 설치/업그레이드를 선택합니다.
- 이 샘플은 새로운 입력 시스템 패키지를 사용하므로 유니티 편집기를 재시작해야 합니다. 예를 선택합니다.
- 유니티 편집기가 자동으로 재시작됩니다. 하지만 가져오기 과정이 계속되지 않으므로 2, 3, 4 단계를 반복해주세요. 이번에는 유니티 편집기를 다시 시작할 필요가 없습니다.
- 유니티 패키지 가져오기 (1단계)에서 다음을 선택합니다.
- 유니티 패키지 가져오기 (2단계)에서 가져오기를 선택합니다.
- 패키지가 가져와집니다.
- 가끔 유니티 콘솔에 렌더러 기능 누락 또는 'unsafe' 코드 허용과 같은 오류가 발생할 수 있습니다.
- 위 오류를 해결하려면 프로젝트 설정을 열고 'unsafe' 코드 허용을 껐다가 다시 켭니다.
- 모든 오류가 콘솔에서 사라지고 에셋 가져오기 과정이 계속됩니다.
- Photon Fusion Hub가 나타나면 Fusion 2 AppId를 입력합니다 - 자세한 내용은 프로젝트 설정에서 확인하세요.
- TPSBR/Scenes/Game 씬을 열고 플레이 모드로 들어갑니다. 장면에서 변경 사항을 저장하지 마세요.
- 가져오기 과정이 잘못 완료되어 라이브러리가 손상된 상태이면 콘솔에 예외가 발생하고 플레이어가 게임 뷰에서 무기를 다루지 못할 것입니다. 이를 수정해야 합니다.
- TPSBR/Prefabs 폴더(하위 폴더 포함)에서 모든 프리팹을 선택합니다. 이는 유니티가 모든 프리팹을 로드하도록 강제합니다.
- Tools/Fusion/Run Weaver를 선택합니다.
- Tools/Fusion/Rebuild Prefab Table을 선택합니다.
- TPSBR/Prefabs 폴더를 다시 가져옵니다.
- 유니티 편집기를 재시작하고 TPSBR/Scenes/Game 장면을 다시 시도해 보세요. 이제 콘솔에 런타임 오류/예외가 없으며 플레이어가 무기를 다루는 데 문제가 없어야 합니다.
- 위 과정이 도움이 되지 않으면 에디터를 닫고 라이브러리 폴더를 삭제해 보세요.
프로젝트 설정
샘플을 실행하려면 PhotonAppSettings
에셋에 Fusion 2 AppId를 지정해야 합니다.
먼저 Photon Engine 관리 화면에서 Fusion 2 AppId를 생성하고 이를 PhotonAppSettings
의 App Id Fusion
필드에 붙여 넣습니다(Tools/Fusion/Realtime Settings
메뉴에서 접근하거나 Assets/Photon/Fusion/Resources/PhotonAppSettings.asset
파일을 직접 수정하여 가능합니다).
게임 시작하기
메뉴 시작
Assets/TPSBR/Scenes
의 Menu
또는 Loader
씬을 열고 플레이 모드에 들어가 플레이
버튼을 누릅니다.
기존 게임에 참여하거나 게임 만들기
버튼을 눌러 새 게임을 만듭니다. 빠른 플레이
버튼은 유니티에서 제공하는 게임 서버 호스팅 플랫폼에서만 작동합니다.
게임 플레이 디버그 시작
직접 씬을 열어 게임을 플레이할 수 있습니다. 장면의 Standalone Manager
GameObject가 시작된 게임 유형을 결정합니다. 원하는 구성으로 게임을 실행하려면 Standalone Manager
값을 변경할 수 있습니다.
하나의 에디터에서 여러 플레이어와 함께 게임을 시작하려면 멀티 피어 모드 섹션을 확인하세요.
조작
키 | 동작 |
---|---|
W,S,A,D | 이동 |
SPACE | 점프 / 제트팩으로 추진 |
1,2,3 | 무기 교체 |
4 | 수류탄 순환 |
Q | 빠른 무기 교체 |
F | 상호작용 / 무기 버리기 (홀드) |
X | 제트팩 토글 |
E | 카메라 측면 토글 |
마우스 왼쪽 버튼 | 발사 |
마우스 오른쪽 버튼 | 조준 |
Enter | 커서 잠금/잠금 해제 |
Ctrl + Enter | 커서 잠금/잠금 해제(빌드) |
서버 실행
BR200를 명령줄에서 헤드리스 서버 인스턴스로 시작할 수 있습니다.
명령줄 인수
인수 | 설명 |
---|---|
-host | 호스트 시작 |
-dedicatedServer | 전용 서버 시작 |
-client | 클라이언트 시작 |
-deathmatch | 데스매치 게임 모드 시작 (서버/호스트 전용) |
-elimination | 제거 게임 모드 시작 (서버/호스트 전용) |
-battleRoyale | 배틀 로얄 게임 모드 시작 (서버/호스트 전용) |
-region [STRING] | 사용자 지정 Photon 지역 (선택 사항), eu/us/usw/... |
-extraPeers [INT] | 동일한 프로세스 내에서 시작된 추가 클라이언트 |
-serverName [STRING] | 게임 목록에 표시되는 사용자 지정 서버 이름 |
-maxPlayers [INT] | 게임에 참여할 수 있는 최대 플레이어 수 |
-sessionName [STRING] | 사용자 지정 세션 식별자 |
-lobby [STRING] | 사용자 지정 매치메이킹 로비 이름 |
-scene [STRING] | 로드할 장면 (GenArea2|GenArea3|GenArea5|GenArea7) |
-stripped | 단일 프로세스가 처리하는 일괄 클라이언트 수를 극대화하기 위해 추가 런타임 최적화 활성화 |
-ip | 서버가 바인딩 할 사용자 지정 IP 주소 |
-port | 서버가 바인딩 할 사용자 지정 포트 |
-fps [INT] | Application.targetFrameRate를 주어진 값으로 설정 |
-moderator | 중재자 권한으로 게임 시작 (공개 빌드에서 게임 생성 및 중재 제어 가능) |
-dataPath | 사용자 지정 출력 디렉토리 경로 |
-recordSession | 현재 세션의 로그 및 성능 통계 기록 |
-generateInput | 랜덤 입력 생성, -stripped와 함께 사용 |
-multiplay | Multiplay Manager (Unity 게임 서버 호스팅) 활성화 |
-backfill | 백필 서비스 사용 (기존 경기 참여, 서버 전용) |
-sqp | 서버 쿼리 프로토콜 (SQP) 사용 |
-matchmaking | Unity Matchmaker 사용 |
-queueName [STRING] | 사용자 지정 매치메이커 큐 이름 |
로컬 헤드리스 서버 명령줄 인수 예:
BR200.exe -batchmode -nographics -dedicatedServer -logFile BattleRoyaleServer.txt -battleRoyale -maxPlayers 200 -scene GenArea7
프로젝트 구조
에셋
경로 | 설명 |
---|---|
3rdParty/ | 타사 자산 |
Photon/ | Fusion 라이브러리 및 애드온 |
TPSBR/ | 샘플 관련 파일, 스크립트 및 파생 자산 |
Extras.zip | 추가 프로파일링 도구 |
장면
장면 | 설명 |
---|---|
Loader | 초기 장면, 최소한의 구성 (빠른 로드), 명령줄 인수 확인, 메뉴 또는 특정 게임 플레이 장면으로 로드 |
Menu | 기본 메뉴 장면 |
LoadingScene | 메뉴와 게임 플레이 장면 간의 페이드 효과가 있는 로딩 화면이 있는 장면 |
Game | 디버깅 및 기능 반복을 위한 작은 정적 테스트 장면 |
GameplayUI | 별도의 게임 플레이 UI가 있는 장면, 추가적으로 로드됨 |
GenArea2 | 실행 시간에 생성된 20명 플레이어용 작은 맵 |
GenArea3 | 실행 시간에 생성된 60명 플레이어용 중간 맵 |
GenArea5 | 실행 시간에 생성된 120명 플레이어용 큰 맵 |
GenArea7 | 실행 시간에 생성된 200명 플레이어용 매우 큰 맵 |