언리얼4 멀티 플레이 채팅
Intro
- 멀티 플레이 채팅 구현하기
채팅 위젯 생성
Chat Box
Scroll Box
와 Editable Text
로 이루어진 위젯 생성
Chat
Scroll Box
에 추가될 자식 위젯 (보내진 채팅)
플레이어 컨트롤러 구성
Begin Play
플레이어 이름을 변수에 저장하고 Chat Box
위젯을 뷰포트에 추가
메시지 전송 수신
서버에서 메시지를 전송하는 이벤트(SendMessage)와 받은 메시지(Text)를 각 클라이언트에서 보여지게하는(Update Chat) 이벤트(ReceiveMessage) 구성
위젯 이벤트 그래프
Update Chat
플레이어 컨트롤러로 부터 Update Chat
함수가 실행되면 자식 위젯을 스크롤박스에 추가하고 스크롤 오프셋을 30만큼 더한다.
이벤트 그래프
엔터키나 Send버튼을 눌렀을때 Text Trim Preceding and Trailing
을 통해 메시지 앞뒤의 공백을 제거한뒤 메시지가 없으면 다시 게임모드로 메시지가 있으면 플레이어 컨트롤러의 Send Message
이벤트를 실행하여 메시지를 전송한다음 메시지창을 비운다.
채팅창 열기
플레이어 컨트롤러에서 Enter
키를 눌렀을때 Has Keyboard Focus
를 이용해 포커스인지 확인하고 Set Input Mode Game And UI에
서 In Widget to Foucs
를 Editable Text
로 설정하면 엔터키를 통해 메시지를 입력가능하게 만들수 있다.
버그 수정
플레이어 이름을 따로 서버에서 실행되는 이벤트에서 저장하도록 하여 한쪽 플레이어만 이름이 표시되는 현상을 수정했다.
댓글남기기