Photon의 개념


image
Photon 연결할 때 App ID를 입력하고 연결하면 생기는 셋팅
이 중 App ID가 같을 때는 같은 네트워크를 사용한다는 뜻

  • 포톤 서버에는 룸과 로비의 개념이 있음
  • 룸은 네트워크 게임을 실행할 수 있는 논리적인 공간
  • 룸에 입장해야만 해당 룸에 접속한 다른 유저와 통신이 가능
  • 로비에 입장하려면 로비 입장 함수를 호출해야 로비에 입장 가능
  • 로비는 현재 룸이 생성되었는지에 대한 정보를 수신받을 수 있음
  • 룸이 목록을 받아와 특정 룸에 입장이 가능

Photon 통신을 위한 콜백함수


함수 이름 호출 조건
OnConnectedToMaster() 포톤 서버에 접속 후 호출되는 콜백 함수
OnJoinedLobby() 로비에 접속 후 호출되는 콜백 함수
OnJoinRandomFailed(short returnCode, string message) 랜덤 룸 입장 실패했을 때 호출되는 콜백 함수
OnCreatedRoom() 룸 생성이 완료된 후 호출되는 콜백 함수
OnJoinedRoom() 룸에 입장한 후 호출되는 콜백 함수
OnDisconnected(DisconnectCause cause) 연결이 끊겼을때 호출되는 콜백 함수
OnPlayerEnteredRoom(Player newPlayer) 현재 룸에 새로운 유저가 들어왔을때 호출되는 콜백 함수
OnPlayerLeftRoom(Player otherPlayer) 현재 룸에 유저가 나갔을때 호출되는 콜백 함수

Photon 주요 메소드, 프로퍼티


이름 종류 설명
PhotonNetwork.AutomaticallySyncScene 프로퍼티 같은 룸의 유저들에게 자동으로 씬을 로딩할 것인지
PhotonNetwork.GameVersion 프로퍼티 게임 접속 버전 ( 같은 버전의 유저끼리 접속 허용)
PhotonNetwork.NickName 프로퍼티 객체의 닉네임
PhotonNetwork.SendRate 프로퍼티 포톤 서버와 통신 횟수
PhotonNetwork.ConnectUsingSettings() 메소드 서버 접속
PhotonNetwork.JoinLobby() 메소드 로비 입장
PhotonNetwork.JoinRandomRoom() 메소드 랜덤 매치메이킹
PhotonNetwork.CreateRoom(“룸 이름”, 룸 속성(Default: null)) 메소드 속성을 가진 룸 생성
PhotonNetwork.JoinRoom(“룸 이름”) 메소드 해당 이름을 가진 룸에 입장
PhotonNetwork.InLobby 프로퍼티 로비에 접속 되었는지
PhotonNetwork.CurrentRoom 프로퍼티 현재 룸의 정보
PhotonNetwork.InRoom 프로퍼티 룸에 접속 되었는지
PhotonNetwork.Instantiate(“Prefab 이름”, position, rotation, 0) 함수 포톤 Instantiate

Photon View 스크립트


네트워크에 접속한 플레이어간 데이터를 송수신해주는 통신 모듈로, 동일한 룸에 입장한 다른 플레이어에게 자신의 위치와 회전 정보를 동기화 해주며, 특정한 데이터를 송수신 가능하며 네트워크 개체당 한개만 사용할 것을 권장. (네트워크 대역폭과 성능상의 이유로)
image

Synchronization: 동기화 처리를 어떻게 할 것인지 기능에 따라 성능이 달라짐

속성 설명
Off 동기화 처리 X. RPC 호출만을 위한 PhotonView에 적합 (RPC: 원격 프로시저 호출 물리적으로 떨어져있는 다른 디바이스간의 함수를 호출하는 기능)
Reliable Delta Compressed 마지막 데이터가 변경되지 않았을 때 데이터 송신 X
Unreliable 패킷의 수신 여부를 확인 X
Unreliable On Change UnReliable과 동일하며 변경사항이 발생했을 때만 송신

Phton Transform View 스크립트


image
플레이어의 위치, 회전값을 동기화하기 위한 모듈

Synchronize Options: 체크되어있는 옵션을 동기화해라
Use Local: 동기화하는 데이터가 Local 기준인지

Photon Animator View


image
애니메이터 컴포넌트를 동기화해주는 모듈
애니메이터 정보를 읽어 레이어와 파라미터 값을 자동으로 동기화 해줌

Synchronize Layer Weights 애니메이션 동기화 횟수인것 같음

속성 설명
Disabled 안함
Discrete 이산
Continuous 연속