PUN Classic (also called PUN1) is the original and first major version of PUN. It is now replaced by PUN2 which is refactored and enhanced. We highly recommend starting new projects with PUN2 and if possible migrating existing ones from PUN1 to PUN2 by following our "Migration Notes". PUN Classic will be maintained for the coming months. We will fix important bugs and support new Unity versions but new features will be added only to PUN2.

초기 셋업

Photon Unity Networking (PUN)은 셋업하기 정말 쉽습니다. PUN 을 새로운 프로젝트에 임포트 하면 PUN Wizard 가 팝업창으로 나타납니다. 이메일 주소를 입력하여 새로운(무료)Photon Cloud 계정으로 등록 하시거나 필드에 기존의 AppId 를 붙여넣기 하세요. 완료 되었습니다.

나만의 Photon Server 를 호스트 하고 싶으면 "skip"을 클릭하고 아래처럼 PhotonServerSettings 을 편집하시기 바랍니다.

접속하려면 코드에서 PhotonNetwork.ConnectUsingSettings() 만 호출 해주면 됩니다. 추가적인 제어를 해야 하는 상황이라면 아래의 Connect Manually 를 보시기 바랍니다.

PUN Wizard
PUN Wizard

PhotonServerSettings

Wizard 는 설정을 저장하기 위해 프로젝트의 PhotonServerSettings 파일에 내용을 추가 합니다. 또한 이 파일은 서버 설정이 저장되는 곳 입니다.

PhotonServerSettings in Inspector
PhotonServerSettings in Inspector

AppId 와 Photon Clound 지역등을 설정 할 수 있습니다. 클라이언트의 Game Version은 코드에서 설정됩니다. 가장 중요한 옵션은 호스팅 타입을 선택하는 것 입니다.

Back To Top

호스팅 타입

Hosting Type 에서는 어떤 서버가 게임을 제어할 것인지와 기타 설정들을 구성 합니다.

Photon CloudBest Region 는 우리의 매니지드 클라우드 서비스와 관계 있습니다. 특정 지역을 선택하거나 클라이언트가 ping 이 가장 빠른 지역을 선택하도록 할 수 있습니다.

Photon Server 를 직접 운영하고 있다면 Self Hosted 를 선택하세요. 설정 방법은 아래에 설명 되어 있습니다.

Select Self Hosted, if you run a Photon Server somewhere. The setup is explained below.

클라이언트도 같이 오프라인 모드로 설정 할 수 도 있습니다.

Back To Top

Best Region 호스팅

Best Region 모드는 앱이 최초 시작할 때 알고 있는 지역에 대해서 모두 ping 을 해 봅니다. 이렇게 하면 시간이 좀 걸리겠지만 PlayerPrefs 내에 결과 값이 저장됩니다. 이렇게 해서 연결 시간을 단축 할 수 있습니다.

특정 지역에 대해서 접속시 사용하지 않도록 설정 할 수 있습니다. 클라이언트가 좁은 지역에 분산되면 한 지역에는 더 많은 플레이어가 참여 하게 되는 결과가 됩니다. 이렇게 하면 게임이 더 인기가 있을 수 있는 이점이 될 수 있습니다.

PhotonNetwork.OverrideBestCloudServer() 를 이용하여 사용할 다른 지역을 정의 합니다.

Back To Top

셀프 호스팅

Photon Server를 호스트 하고 있다면 Photon Server의 주소와 포트를 PhotonServerSettings 에서 설정 해 주어야 합니다. 설정이 올바르게 되었을 때 소스코드에서 PhotonNetwork.ConnectUsingSettings() 를 호출 할 수 있습니다.

클라이언트가 입력한 주소에 접속 할 수 있는 지 확인 해 보세요. 주소는 public IP, 고정IP , 호스트명 또는 클라이언트가 사용하고 있는 네트워크 내 주소가 될 수 있습니다.

포트는 선택한 프로토콜에 따라 달라지게 되므로 두개의 필드가 일치하는 지 확인해 보세요. 기본 포트로 리셋하려면 그 필드를 Clear 하시면 됩니다.

Back To Top

프로토콜

여기에서의 기본값은 (신뢰)UDP 이지만 Photon 은 TCP 를 사용할 수 있고 신뢰 HTTP 프로토콜도 사용할 수 있습니다.

UDP 를 이용하는 것을 권고 합니다 PUN+는 TCP를 지원하지 않습니다. WebGL 익스포트는 WebSockets 에서만 동작합니다.

Back To Top

클라이언트 설정

클라이언트 설정은 프로젝트별로 설정하는 것으로 몇 가지의 옵션들이 있습니다.

Auto-Join Lobby를 체크하면 PUN 은 클라이언트가 연결(또는 룸을 빠져나올 때)시에 기본 로비로 자동 참가 하도록 해줍니다. Photon 의 로비는 현재 룸의 목록을 제공 해주어 플레이어들이 참여할 방을 선택 할 수 있게 해줍니다. 무작위 매치메이킹 사용을 위해서 플레이어가 방을 선택하는 것은 기본적으로 꺼져 있으며 모든 데모에서도 이 옵션이 꺼져 있는 것을 이용 하고 있습니다.

Enable Lobby Stats 를 사용할 수 있도록 하여 서버로 부터 로비의 통계를 받습니다. 게임이 여러개의 로비를 사용하는 경우 플레이어 들의 현재 활동 내역을 보기 원할 때 매우 유용하게 사용 됩니다. 로비의 이름, 타입, 룸과 플레이어 수에 대한 정보를 얻을 수 있습니다. PhotonNetworking.LobbyStatistics 을 참고 하세요.

이러한 설정들은 PUN v1.60 에서 처음 소개 되었습니다.

Back To Top

RpcList

Remote Procedure Calls 은 룸 안에 있는 모든 클라이언트의 메소드를 호출 할 수 있게 합니다. PUN 은 PhotonServerSettings 에서 이러한 메소드들의 목록을 보관합니다. 초기 셋업에서 이것은 의미가 없습니다.Remote Procedure Calls 을 참고 하세요.

Back To Top

수동으로 접속

PhotonNetwork.ConnectUsingSettings() 대신에 PhotonNetwork.ConnectToMaster() 을 사용하여 자신의 Photon Server 에 접속 할 수 있습니다. Photon On-Premises 를 호스트 하고 있거나 LAN 세션을 위한 Redistributable 서버를 제공하고 있는 경우 유용합니다.

ConnectToMaster() 를 이용할 때 masterServerAddressport 를 제공해야 합니다.

주소는 On-Premises DNS 이름 또는 IP 중의 하나 입니다. 주소에 콜론(:) 이후에 포트번호를 포함하거나 포트번호를 분리해서 전달 할 수 있습니다.

예:Photon Redistributable 의 런처는 마스터 서버의 주소값을 IP:Port 형태로 보여 줍니다. 플레이어들이 게임에서 이정보를 입력하기만 하면 됩니다.

ConnectToMaster() 는 두개의 파라미터가 더 있습니다: "appID" 와 "gameVersion" 입니다. 둘 다 Photon Clound 에 해당 되지만 자체적으로 Photon 을 호스트 하고 있는 어떤 값으로도 설정 할 수 있습니다.

Photon Cloud 에서는 ConnectUsingSettings() 을 사용 하세요. 이 메소드는 자동적으로 지역의 마스터 서버를 찾을 수 있도록 하는 네임 서버가 포함되어 있습니다.

To Document Top