1일1알

UE5로 만드는 Team Fortress 2 닷지볼 - 채팅 시스템 본문

언리얼/TF2 Dodgeball 모작

UE5로 만드는 Team Fortress 2 닷지볼 - 채팅 시스템

영춘권의달인 2024. 4. 22. 18:53

 

 

채팅 시스템 구현을 위해 3개의 Widget을 제작하였다. 

 

1. ChatUI : 엔터를 누르면 나오는 채팅 UI로, 채팅 로그들이 기록되고 스크롤박스를 통해 스크롤하여 지금까지의 채팅 내용을 확인할 수 있다.

2. ChatTmpUI : 잠깐 나왔다가 사라지는 채팅 UI로, 실시간으로 올라오는 채팅이 잠깐 나왔다가 사라지는 UI이다.

3. ChatElement : ChatUI의 스크롤박스의 자식, ChatTmpUI 의 VerticalBox에 들어가는 실제 채팅 메세지, 발신인을 표시하는 UI이다. RichText를 사용하여 부분적으로 텍스트의 색상을 변경 가능하도록 하였다. 플레이어의 상태, 현재 팀에 따라 플레이어 앞에 붙는 수식어와 플레이어의 이름 색상이 변경되도록 하였다.

 

만약 채팅을 바로 치고 ChatUI를 키면 아직 ChatTmpUI가 남아있는 상태이기 때문에 ChatElement가 두개가 표시되는데, 이때 텍스트가 같은 위치에 표시되어 완전히 겹쳐져서 두개로 보이지 않도록 구현하였다.

 

 

작동 방식

 

UEditableText의 입력이 완료되면 호출되는 OnTextCommitted  델리게이트에서 ServerRPC를 호출하여 작성한 텍스트 정보를 보내고, 서버에서는 MulticastRPC를 사용해 해당 정보를 보낸 플레이어 정보와 텍스트 정보를 모든 클라이언트에게 뿌려주었다.

클라이언트에서는 해당 정보를 받아서 필요한 정보를 추출하여 ChatUI , ChatTmpU 를 띄워주도록 하였다.