Unreal Engine 5 C++ Multiplayer Shooter
무기로 쓸 Weapon 액터를 생성한다.
무기의 상태를 나타내는 EweaponState 열거형을 정의한다.
- Base type을 uint8로 지정하고 마지막에 MAX를 정의해주면, MAX를 통해 열거형의 개수를 알 수 있다.
- UMETA(DisplayName = "Name") 매크로를 지정해주면, BP에서 해당 이름으로 열거형이 표시된다.
무기 메쉬를 보여주기 위한 Skeletal Mesh 컴포넌트와 겹침을 판별할 Sphere 컴포넌트를 선언한다.
Tick 기능은 사용하지 않을 것이므로 꺼준다.
생성자에서 컴포넌트를 생성하고 충돌을 설정한다.
- 무기 메쉬는 폰은 무시하고 다른 것들과는 Block하도록 설정한다.
- Sphere는 기본적으로 모든 것들을 무시하도록 설정한다.
나중에 이유가 나온다.
모든 클라이언트에 대해 액터를 동기화시키기 위해 bReplicates 속성을 true로 설정해준다.
여기서 Sphere의 충돌 기본값을 모두 무시로 설정한 이유를 알 수 있다.
충돌 감지 등 중요한 처리는 서버에서만 수행하는 것이 좋다.
- HasAuthority() 함수를 통해 서버에 존재하는 무기인 경우에만, Sphere를 통해 폰과의 겹침을 확인하도록 한다.
- 주석 처리되어 있는 GetLocalRole() == ENetRole::ROLE_Authority 와 같다.
블루프린트 무기 액터를 만든다.
무기의 상태는 기본값을 정해주지 않아도 첫 번째 초기 상태로 설정되어 있다.
- UPROPERTY() 매크로를 지정하면 값 유형에 대한 초기화를 지원하기 때문이다.
무기 액터를 생성했다.
'Unreal Engine > UE5 C++ Multiplayer Shooter' 카테고리의 다른 글
변수 리플리케이션 (2) | 2023.04.03 |
---|---|
무기 획득 위젯 띄우기 (0) | 2023.04.02 |
Network Role (0) | 2023.03.31 |
Seamless Travel (3) | 2023.03.31 |
애니메이션 적용 (0) | 2023.03.30 |