언리얼4 멀티 플레이 채팅

Intro

  • 멀티 플레이 채팅 구현하기

채팅 위젯 생성

Chat Box

1

Scroll BoxEditable Text로 이루어진 위젯 생성

Chat

2

Scroll Box에 추가될 자식 위젯 (보내진 채팅)

플레이어 컨트롤러 구성

Begin Play

3

플레이어 이름을 변수에 저장하고 Chat Box 위젯을 뷰포트에 추가

메시지 전송 수신

4

서버에서 메시지를 전송하는 이벤트(SendMessage)와 받은 메시지(Text)를 각 클라이언트에서 보여지게하는(Update Chat) 이벤트(ReceiveMessage) 구성

위젯 이벤트 그래프

Update Chat

5

플레이어 컨트롤러로 부터 Update Chat 함수가 실행되면 자식 위젯을 스크롤박스에 추가하고 스크롤 오프셋을 30만큼 더한다.

이벤트 그래프

엔터키나 Send버튼을 눌렀을때 Text Trim Preceding and Trailing을 통해 메시지 앞뒤의 공백을 제거한뒤 메시지가 없으면 다시 게임모드로 메시지가 있으면 플레이어 컨트롤러의 Send Message 이벤트를 실행하여 메시지를 전송한다음 메시지창을 비운다.

채팅창 열기

6

플레이어 컨트롤러에서 Enter키를 눌렀을때 Has Keyboard Focus를 이용해 포커스인지 확인하고 Set Input Mode Game And UI에In Widget to FoucsEditable Text로 설정하면 엔터키를 통해 메시지를 입력가능하게 만들수 있다.

버그 수정

8

플레이어 이름을 따로 서버에서 실행되는 이벤트에서 저장하도록 하여 한쪽 플레이어만 이름이 표시되는 현상을 수정했다.

실행 결과

7

참고 자료

https://forums.unrealengine.com/community/community-content-tools-and-tutorials/72715-free-chat-system

댓글남기기