본문 바로가기
Unity

[Unity] Photon 3

by SnoopyCoffee 2022. 7. 11.
반응형

본 포스팅은 유투브 유니티처님의 영상을 참고하여 작성한 글입니다.

유니티 포톤 네트워크 개발에 관한 내용이 잘 정리되어있는 영상입니다. 여러분들도 필요하시면 같이 따라해보면서 포톤 네트워크에 관한 내용을 알아 가셨으면 좋겠습니다.

https://youtu.be/477bioOypF4

1.  Photon Network Manager 

1-1.  빈 오브젝트를 생성하고, 포톤 네트워크를 관리하는 PhotonManager 스크립트 만들어 빈 오브젝트에 PhotonManager 스크립트 컴포넌트를 넣어준다.

2.  PhotonManager 

2.1. PhotonManager 클래스는 MonoBehaviourPunCallbacks을 상속받아 사용하게 된다.2.2. PhotonManager 클래스에서는 Photon.Pun 과 Photon.Realtime을 가져와 사용한다.

2.3. 프로젝트의 버전과 접속할 때 사용할 userId를 지정해준다. 여기서 userId는 게임을 시작할 때 따로 받아서 처리할 수 도 있다.

2.4. PhotonNetwork.AutoMaticallySyncScene -> 모든 클라이언트가 마스터 클라이언트(방장)의 신과 동일하게 사용할 지 여부 

만약 마스터 클라이언트가 A Scene에서 B Scene으로 넘어갈 시 모든 클라이언트가 같은 Scene으로 넘어가게

PhotonNetwork.GameVersion -> 같은 버전의 유저끼리 접속을 허용하게끔 세팅

PhotonNetwork.NickName -> 아이디를 할당

PhotonNetwork.ConnectUsingSetting(); -> 서버 접속

3.  PunCallback 함수

3.1. OnConnectedToMaster() -> 서버에 접속 후 로비에 입장하도록 PhotonNetwork.JoinLobby() 함수를 실행

3.2. OnJoinedLobby() -> 로비에 접속후 랜덤한 방에 입장하도록 PhotonNetwork.JoinRandomRoom() 함수실행 

3.3. OnCreatedRoom() -> 방 생성이 완료 된 후 호출

3.4. OnJoinedRoom() -> 룸 입장한 후 호출

3.5. OnJoinRandomFailed()-> 방 접속에 실패 할 경우 방생성 

3.6. 방을 생성하는데 필요한 옵션을 설정 

3.7 PhotonNetwork.CreateRoom("방제목", 방 옵션) 함수를 이용해 방생성

4. 플레이어 조작

4.1. 플레이어는 생성되면 자신만의 캐릭터만 컨트롤 가능하게 하기 위해서는 PhotonView 컴포넌트를 가져와서

(Bool)pv.IsMine 을 통해 처리해준다.

5. 플레이어 프리팹 및 컴포넌트 

5.1. 플레이어를 프리팹으로 만들어 PhotonView, PhotonTransformView, PhotonAnimatorView 컴포넌트를 넣어준다.

5.2. 해당 컴포넌트들은 게임상에서 플레이어의 모습과, 위치, 애니메이션을 동기화 시켜주기 위한 컴포넌트들이다.

6. Github

1. 해당프로젝트는 깃헙에 올려놓았습니다~참고해주세요!!

 https://github.com/kimhyunin/PhotonTest

 

GitHub - kimhyunin/PhotonTest

Contribute to kimhyunin/PhotonTest development by creating an account on GitHub.

github.com

 

반응형

'Unity' 카테고리의 다른 글

[Unity] ForceMode  (0) 2022.07.27
[Unity] Mixamo 애니메이션 적용  (0) 2022.07.14
[Unity] Photon 2  (0) 2022.07.11
[Unity] Photon  (0) 2022.07.06
[Unity]Prefab  (0) 2022.04.26