주의 사항:Photon TrueSync와 Thunder는 서비스 종료되었으며 앞으로도 업데이트 및 릴리즈는 없을 예정입니다. 기존 어플리케이션에 영향은 없습니다만 현재 개발중인 어플리케이션에 대해서는 마이그레이션을 장려합니다.
Photon 썬더 환경구성
환경구성 파일
이 파일은 썬더 패키지를 다운로드하고 임포트 한 이후 Resources 폴더에 있습니다. 썬더 프로젝트 동작에 필요한 모든 주요 환경구성이 들어가 있습니다.
환경구성 파일을 클릭하고 인스펙트 뷰로 이동하면 에디터 오른쪽에서 코드 필요없이 설정 값을 변경할 수 있습니다.
주요 환경구성 필드들은 다음과 같습니다:
- Application ID: 여기에는 Photon 계정에서 생성했던 프로젝트의 앱 ID를 입력해야 합니다. 붙여만 놓으면 준비가 된 것 입니다.
- Hosting: 이 설정은 어떤 유형의 서버를 사용할지를 구성합니다.
- Photon Cloud: 이 모드에서 프로젝트는 플레이어간의 연결 관리를 위해 Photon 서버를 사용할 것 입니다. 이를 사용하여 모든 서버중에서 기본 지역을 선택할 수 있습니다.
- Self hosted: 이 옵션을 사용하여 나만의 Photon 서버를 사용할 수 있습니다. 호스팅 서버의 IP와 포트를 설정하시면 됩니다.
- Target Connection Type: 이 필드는 게임 인스턴스의 연결 용량을 구성하며 다음값으로 설정할 수 있습니다:
- Punch + Relay: 이 구성을 사용하면, 새로운 플레이어가 호스트에 접속할 때, NAT 펀치쓰루 프로세스가 수행되어 클라이언트와 호스트간 직접 연결을 생성합니다. 만약 이 단계가 실패한 경우에는 대비책인 Relay Only 연결 할 것 입니다.
- Relay Only: 데이터교환이 발생하는 연결은 Photon 서버를 릴레이서버로 사용하여 만들어지게 됩니다. 이 연결 유형은 직접 연결보다 더 느릴 수 있지만, 항상 동작하는 것을 보장합니다.
코드로 썬더 환경구성을 변경하는 방법은?
썬더 환경구성 에셋은 ScriptableObject이며 실행시에 매치메이커를 활성화 하기 전 모든 설정값들이 변경될 수 있습니다. 스크립트상에서 이 인스턴스에 대한 접근을 얻기 위해서는, 아래의 코드를 사용할 수 있습니다.
C#
using UnityEngine.Networking;
public class RuntimeCfg : MonoBehaviour
{
private PhotonThunderConfig config;
void Start()
{
this.config = PhotonUtils.getThunderConfig();
}
}
거기에서 참조 인스턴스를 사용하여 설정을 변경할 수 있습니다:
C#
void Configure() {
// Set your Application ID
this.config.appId = "e0daaa07-3e6e-4637-b47a-369372992d81";
// Use your own self hosted server or the Photon server
this.config.useLocalServer = false; // true to use self hosted server
// IF USING SELF HOSTED SERVER
this.config.localServerIp = "192.168.0.10";
this.config.localServerPort = "7076";
// IF USING PHOTON SERVER
// Use the Punch + Relay connection
this.config.connectionType = PhotonThunderConnectionType.PUNCH_RELAY;
// Set the default region used to manage the connections
// You can change US to any other region on the Enum
this.config.currentRegion = PhotonRegions.Regions.US;
// Use the Relay Only connection
this.config.connectionType = PhotonThunderConnectionType.RELAY;
}
Back to top