
본 포스팅은 유투브 유니티처님의 영상을 참고하여 작성한 글입니다.
유니티 포톤 네트워크 개발에 관한 내용이 잘 정리되어있는 영상입니다. 여러분들도 필요하시면 같이 따라해보면서 포톤 네트워크에 관한 내용을 알아 가셨으면 좋겠습니다.
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 |