본문 바로가기

Unity

[Unity] Photon 채팅 구현

포톤에서 모든 동기화는 PhotonView 컴포넌트에서! (중요!!)

심지어 변수와 함수도 PhotonView 컴포넌트를 거쳐감.

 

에셋 스토어에서 PUN 2 - FREE 다운로드 받은 후

 

임포트

 

 

... 또 다 날아갔어 ...

 

하 ..

 

 

 


참고

https://hyokim.tistory.com/3 

 

Photon 채팅 프로그램 - 1. 로그인 씬

화면 구성은 아래와 같습니다. 화면의 각 구성요소 1. 서버 연결상태 출력 (UI-Text) 2. 유저 아이디 입력 (UI-Input Field) 3. 아이디 입력 후 사용할 접속 버튼 (UI-Button) 계층 위에서 설명한 ID(Input F..

hyokim.tistory.com

 

 

1. UI 오브젝트 생성

Canvas

Login(Button) - 접속 버튼

ID(Input Field) - ID 입력

ConnectionStatus(Text) - 접속 상태 출력

++ Input Field와 Text는 Legacy에!

 

2. LobbyManager (Empty) 오브젝트 --> 로그인 화면 작업 담당

3. LobbyManager.cs 생성하고 코드 작성

4. LobbyManager.cs 컴포넌트를 LobbyManager 오브젝트에 추가하고, UI 연결

Login --> LoginBtn에 적용

ID의 Text --> IDtext에 적용

ConnectionStatus --> ConnectionStatus에 적용

 

5. 접속(Login) 버튼이 눌러졌을 때 실행할 메소드를 LobbyManager의 Connect()로 설정

 

 

----------------------

 

 

 

 

https://hyokim.tistory.com/4 

 

Photon 채팅프로그램 - 2. 채팅 씬

이 씬은 그림과 같이 왼쪽엔 채팅창 (Scroll View와 InputField, Send버튼), 오른쪽엔 Chatting에 참여한 사람들의 ID를 보여줍니다. Scroll View, Input Field, Button(전송버튼)을 묶어서 "Chatting Box(Empty)..

hyokim.tistory.com

1. File - New Scene 생성 후 MainScene이라는 이름으로 Scenes 폴더에 저장

 

왼쪽에는 채팅창, 오른쪽에는 채팅에 참여한 사람들의 ID 보여주는 리스트 만들자.

 

2. Canvas 생성

채팅창 Chatting Box (Empty) 내부에

Scroll View 

Scroll View - Viewport - Content에 UI - Text 생성 --> 채팅 로그를 띄워주는 역할.

ChatLog로 이름 변경하기

ChatLog 오브젝트에 Add Component - Content Size Fitter 추가하고 아래와 같이 설정. 내용 가로세로 사이즈 맞춰주는 거임

 

Scroll View - Viewport - Content에도 Add Component - Content Size Fitter, Vertical Layout Group 추가하고 아래와 같이 설정.

 

++ Scrollbar Horizontal은 필요 없으니 제거하자.

 

 

2) InputField

 

3) Button - Send 버튼

 

그리고 ChattingList (Text) 생성

 

++ Canvas 생성하면 EventSystem도 자동 생성됨.

 

 

3. ChatManager (Empty) 생성하고, 적용할 ChatManager.cs 생성하자.

 

4. 스크립트 적용 후, public 데이터들을 드래그앤드롭

Add Component로 Photon View 추가

 

 

-------

 

 

오류 ..

 

자꾸 region 관련 에러 발생함 ... ㅜ

---> 그거 Photon App ID 입력하는 곳에서 kr이라고 Dev Region 내용 비워주니까 해결됨.

 

근데 또 오류..다른 오류...

변수에 오브젝트 지정을 하지 않았음..

 

 

 

예전에 만들어둔 NetworkManager 실행해서 발생한 에러같음. 지우니까 해결됨!

 

 

 

ID 입력이랑 Login 버튼 클릭까지는 됨. 상태 메시지도 잘 뜸. 씬 이동 관련 오류 남.

내가 Main이라 안 하고 MainScene이라고 만들어서 그런가봄. 다시 고쳐줬음.

그리고 씬이 build settings에 추가되어야 한다고 하는데 ..

File - BuildSetting에서 새로 만든 씬을 드롭해주면 됨!

프로젝트의 씬들을 여기에 추가해주지 않으면, 빌드했을 때 씬이 들어가지 않는다고 함. 즉, Scenes In Build에 추가된 씬들만 빌드가 됨 ~!

 

잘 이동되는데!! 디자인 까먹음 ..

디자인 다 하고..

이번에는 씬 이동이랑, 이동해서 텍스트 입력은 되는데 send 버튼 눌러도 뭐 동작하는 게 없음..

... 심지어 오류도 안 떠..

 

 

....!! 버튼 눌렀을 때 메소드 연결을 안 해줬음.........

 

 

이제 텍스트 뜨기는 하는데 .. 플레이어 리스트에 안 뜨고, 다중 접속은 어떻게 하는지도 모르겠음..

 

 

-----------------

 

참고

https://www.youtube.com/watch?v=lsM_sRMZeUw 

 

 

두 명이 플레이하는 걸 확인해야 하니까

 

File - Build And Run 

프로젝트(?)에 Builds 폴더 생성하고

기다리자..

헙..

 

 

그리고 실행되는데..!! (유니티 측??) 

풀스크린이었음.

ctrl+Alt 누르면 창모드로 전환됨. 근데 사이즈 조정은 안 됨. ---> 알아봐야함.

 

그리고 내 유니티에서도 실행해야 함. 그럼 멀티로 됨...!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!

 

근데 플레이어 리스트가 뜨지 않음 --> 알아봐야함.

'Unity' 카테고리의 다른 글

[Unity] Tilemap  (0) 2022.10.11
[Unity] Github  (0) 2022.10.10
[Unity] Transform / Prefab  (0) 2022.07.01
[Unity] 설치 및 기초  (0) 2022.06.01
[Unity] C#  (0) 2022.05.22