Make Unreal REAL.
article thumbnail
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' 카테고리의 다른 글

변수 리플리케이션  (0) 2023.04.03
무기 획득 위젯 띄우기  (0) 2023.04.02
Network Role  (0) 2023.03.31
Seamless Travel  (0) 2023.03.31
애니메이션 적용  (0) 2023.03.30
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그