Networking/PlayerState2017. 11. 13. 16:47

언리얼 엔진에서 커스텀 PlayerState 사용하는 예


PlayerState 는 네트워크 게임에서 매우 유용한 클래스이다. 이름에서 그 용도를 짐작할 수 있듯이 게임 플레이어의 모든 상태를 저장하고 다른 클라이언트에게 까지 전달할 수 있는 특징을 가지고 있다


PlayerState 객체는 모든 클라이언트 머신과 서버 머신에서 공히 접근이 가능하며 플레이어 하나에 한개의 PlayerState 가 할당되고 레벨이나 플레이어 폰(캐릭터)가 메모리에서 제거(Destroyed)되더라도 PlayerState 는 계속 존재하며 플레이어의 정보를 유지할 수 있다.


PlayerState 기반의 클래스 블루프린트 생성

커스텀 PlayerState 에 임의의 변수 선언

커스텀 GameMode 에 위에서 생성한 PlayerState 등록

커스텀 GameMode를 월드세팅 / GameMode에 등록

커스텀 GameMode를 Edit > 프로젝트 세팅 > 맵 & 모드 패널의 Default Modes / Default GameMode에 설정

이벤트 그래프에서 GetPlayerState 노드와 형변환 노드를 이용하여 커스텀 PlayerState 참조를 구한다

PlayerState 참조를 이용하여 그 안에서 선언한 변수에 접근하여 값을 변경한다


다음은 마우스로 큐브를 클릭하면 점수를 1점씩 올리며 5점에 도달하면 'You WIN!' 메시지를 화면에 출력하는 예이다



Posted by cwisky