멀티플레이게임을 진행할때 다른 유저와 자동으로 팀을 나누는 팀모드를 구현.
플레이어가 게임에 접속할때 게임 모드에서 PostLogin이 실행된다.
이때 플레이어의 PlayerState에서 생성한 팀 설정을 통하여 팀을 지정해준다.
게임모드에서 게임스테이트 클래스의 변수에 로그인된 플레이어의 스테이트를 통하여 플레이어 등록을하고
로그인된 플레이어의 스테이트를 통하여 해당 플레이어의 팀을 지정해 준다.
플레이어의 팀에 관한 데이터는 복제하여 서버와 클라이언트의 동기화가 필요하다.
외부에서 접근하여 SetTeam으로 팀의 값을 변경(서버에서실행)하면 해당값이바뀌고,
값이 바뀜과 동시에 OnRep_Team() 함수를 실행시켜 팀정보를 동기화한다.
동기화 되는 것은 현재 단순하게 플레이어의 색상을 나누는 것. Red or Blue 팀.
플레이어의 색상은 단순히 플레이어의 머티리얼인스턴스를 복수 만들어 변수에 저장하고
게임이 시작될때 플레이어의 PlayerState가 검증될때 적용 되도록 해야한다.
단순히 BeginPlya() 를 이용해서 호출하면 첫프레임에서 PlayerState가 검증되지 않을 수 있으므로
Tick 에서 업데이트 함수를 호출시키고 조건문으로 PlayerState가 검증되었는지 확인해야 하는 과정이 필요하다.
'공부 > Unreal Engine 5' 카테고리의 다른 글
[언리얼5] 팀모드2 깃발뺏기 테스트 (0) | 2024.04.14 |
---|---|
[언리얼5] 팀모드 테스트 (0) | 2024.04.12 |
[언리얼5] 언리얼 게임 흐름 관계 클래스 (0) | 2024.04.09 |
[언리얼5] 위젯 텍스트 롤업(C++) (0) | 2024.04.09 |
[언리얼5] 클라이언트의 검증 함수 (0) | 2024.04.07 |
댓글