자료실

[Photon 튜토리얼]포톤 Chat
작성자 | admin 2020-10-05  |    조회수 : 4022  

안녕하세요.
이번 포스팅에서는 포톤 chat을 다뤄보겠습니다.





* 포톤 chat 홈페이지

https://www.photonengine.com/ko-KR/Chat

www.photonengine.com

Photon Chat 은 확장성 높은 채팅 시스템의 구축에 많은 도움이 되는 솔루션입니다.
Photon Chat 자체로도 이용이 가능하며, 다른 Photon 서비스와 함께 이용하실 수도 있습니다.

그리고 정말 간단하게 프로젝트에 적용할 수 있습니다.
크게 2단계만 거치면 포톤 chat이 동작하는 것을 보실 수 있습니다.

1. UI
2. 스크립트: 인터페이스 구현 (IChatClientListener)

본격적으로 들어가기에 앞서
유니티 에셋 스토어에서 포톤 chat 을 다운받아주세요!




유니티 어셋 링크 ->


Photon Chat - Asset Store
https://assetstore.unity.com/packages/tools/network/photon-chat-45334




그리고
Photon 엔진 홈페이지에서 App ID를 생성해주세요.




https://www.photonengine.com/ko-KR/Photon 그리고 생성한 APP ID를 프로젝트에 적용시키면 됩니다.
위치 : ResourcesChatSettingFile




이제 준비는 다 되었습니다.
본격적으로 같이 만들어보죠.


첫단계는 'UI 화면구성'입니다.
요약을 하자면,
터치를 받을 수 있는 이벤트 시스템을 만들기
텍스트 입력하는 텍스트 필드
텍스트를 보여주는 스크롤 뷰 를 구성하는 겁니다.

1.1 EventSystem
: 게임오브젝트에
EventS ystem, Standalone Input Module, Touch Input Module 컴포넌트 추가


1.2 대화를 입력할 텍스트 필드
1.3 대화를 보여줄 스크롤 뷰
: Content 에 Content Size Filter 의 Vertical Fit 을 Preferred Size 로 설정






첫단계는 끝났습니다.
두번째 단계인 약간의 코딩만 하면 Photon Chat이 동작합니다.
즉, IChatClientListener 인터페이스만 구현하면 됩니다.
:
void DebugReturn(DebugLevel level, string message);
"void OnDisconnected();"
"void OnConnected();"
void OnChatStateChange(ChatState state);
"void OnGetMessages(string channelName, string[] senders, object[] messages);"
void OnPrivateMessage(string sender, object message, string channelName);
"void OnSubscribed(string[] channels, bool[] results);"
"void OnUnsubscribed(string[] channels);"
void OnStatusUpdate(string user, int status, bool gotMessage, object message);

이 중
OnDisconnected(), OnConnected(), OnGetMessages(string channelName, string[] senders, object[] messages),
OnSubscribed(string[] channels, bool[] results), OnUnsubscribed(string[] channels)
이 5개를 중점으로 다뤄보겠습니다.

2.1 적당한 곳에 ChatTest.cs 파일을 생성합니다.

2.2 코딩
: 중요한 2개 함수만 코드로 적어놓겠습니다.
나머지는 아래 첨부파일을 다운 받아보세요.


..........................................................................................................................................

public void OnConnected ()

{

AddLine ("서버에 연결되었습니다.");

chatClient.Subscribe(new string[]{currentChannelName}, 10);

}

..........................................................................................................................................

public void OnGetMessages(string channelName, string[] senders, object[] messages)

{

for (int i = 0; i < messages.Length; i++)

{

AddLine (string.Format("{0} : {1}", senders[i], messages[i].ToString()));

}

}

..........................................................................................................................................

포톤 chat 구현을 위한 2단계를 다 하셨습니다.
이제 마지막으로 변수 연결만하면 chat 이 동작하는 것을 볼 수 있습니다.


★더 많은 글은Photon HelpCenter
https://support.photonengine.jp/hc/ko/categories/204651467 에서 확인하세요!

★Photon 공식 홈페이지 https://www.photonengine.com/ko-kr/Photon