알려진 이슈들

이 페이지에서는 플랫폼에서 발생된 다양한 이슈들을 보여줍니다. 여기에서는 아직 해결하지 못했거나 현재 해결하려는 이슈들에 중점을 두고 있습니다. 특정한 경우 플랫폼에서 사용할 수 없는 버전은 다른 버전 사용을 권고 합니다.

유니티

PUN-FREE 에서 PUN+ 업그레이드

유니티 5 에서 PUN Free 와 PUN+ 는 완전히 동일한 패키지 입니다.이 유니티 버전에서는 모바일에 대한 내보내기 제한이 제거 되었습니다. 100 CCU를 받기 위해 PUN+ 로 업그레이드 할 수 있으나 기술적으로 패키지를 전환할 필요가 없습니다.

유니티4 에서는 몇가지의 예외 사항이 있는데 PUN+ 는 PUN Free 와 동일 합니다. 프로젝트에 PUN Free 가 있는 상태에서 PUN+를 임포트하면 아래와 같은 컴파일 에러가 발생하여 당황 스러울 수 있습니다: System.Net.Sockets 는 Unity iOS Pro 만 지원 합니다.

수동으로 필요한 파일을 복사 할 수 있으나 시작 전에 작업내용을 백업해 주세요!

새로운 프로젝트를 생성하고 PUN+를 임포트 합니다. PUN+와 PUN Free 가 동일한 버전인지 확인 해주세요(PhotonNetwork.versionPUN 이 같은지).

유니티를 닫고 탐색기(맥의 경우 파인더)를 이용하여 기존프로젝트로 PUN+ 파일들을 복사합니다. 기존에 있는 모든 폴더를 "머지"하여 PUN 의 모든 부분을 "덮어쓰기" 또는"교체" 하도록 해주세요.

Assets\Plugins 폴더와 서브폴더 내용을 모두 교체했는지 확인 해주세요. 만약 Photon*.dll 파일이 Assets\Plugins 폴더 내에만 존재하고 있는지 다시한번 확인 해주시기 바랍니다.

업데이트 된 프로젝트를 오픈하고 프로젝트 패널에서 우 클릭하여 "reimport all"을 클릭 하세요.

PUN+가 정상적으로 동작하고 있는지 검증하기 위해서 mobile 로 PUN+프로젝트를 익스포트 할 수 있습니다. 만약 동작하지 않으면 메일로 로그 파일을 보내주시기 바랍니다.

Back To Top

모바일 - 홈 버튼을 누르면 접속 해제 될 수 있습니다

대부분의 모바일 기기에서는 어플리케이션이 백그라운드로 들어 갈 때 모든 접속이 유지 되지 않습니다. 이 규칙에는 예외가 없습니다(예: 애플 개발자 페이지에서 Background Execution을 참고하세요)

약 10초 이내에 게임이 다시 포커스를 얻으면 PUN 은 게임을 계속 진행 하려고 할 것입니다. 10초 이상 백그라운드에 있다면 타임아웃이 걸리게 됩니다. 클라이언트가 이렇게 하는 한편 서버측에서도 타임아웃이 걸릴 수 도 있습니다.

iOS 의 특성상 앱이 즉시 종료되기 때문에 "timeout disconnect" 콜백은 앱이 재 실행될때 알 수 있습니다.

어플리케이션이 백그라운드로 변경될 때와 다시 포커스를 받을 때 iOS에 의해 호출되는 시스템 콜백이 있습니다. 접속해제를 할 때 이러한 콜백 함수들을 이용하시기 바랍니다. 만약 게임 설계가 수초 또는 수분 이내에 다시 돌아왔을때도 작동해야 한다면 다시 연결하여 방에 참가하는 게임 설계를 할 수 도 있습니다.

Back To Top

Windows 8

윈도우즈 8(8.1 일수도 있습니다)에도 알려진 이슈들이 있는데 연결 되었음에도 불구하고 시스템이 새로운 WiFi 네트워크를 검색 한다는 것입니다. 수신 메시지 시간 차가 수신과 핑 스파이크가 있어 실시간 네트워크 게임에 영향을 주게 될 수 있습니다.

이 현상 수정은 시스템 레지스트리의 ScanWhenAssociated 필드 [HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Class{4d36e972-e325-11ce-bfc1-08002be10318}\0002] 값을
0x00000001 에서 0x00000000 로 변경 합니다.

Back To Top

Windows Phone 8

유니티 4.3.3 과 4.3.4 버전의 버그로 인하여 내보내기가 실패 하면 다음과 같은 메시지가 발생 합니다:

Exception: Method not found: 'System.TypeCode System.Type.GetTypeCode(System.Type)'.”

해결방법은 여기에 설명되어 있습니다: https://tinyurl.com/qfakzjx

Unity 4.2.2 에서는 이상없이 잘 동작하고 4.5 에서도 수정되어있을 것 입니다.

Back To Top

IOS

일부 유니티 4.3.3 과 4.3.4 에서 내보낼 때 수신 room- 과 player-프로퍼티들이 잘못 읽혀질 경우가 있습니다. 어떤 경우에는 프로그램이 메모리 부족 예외로 인하여 죽게 크래시 됩니다.

이러한 경우 AOT 컴파일이 정상적으로 동작하지 않고 해시 테이블이 깨져서 작동 되는 경우가 있습니다. 원인을 정확히 알 수 는 없으나 수정을 위해 Unity 4.x 릴리즈에서 테스트 수행 중입니다.

주의 해야할 점:모든 내보내기가 자동으로 깨지게 되는 것은 아니지만 손상되지 않는 프로젝트도 있습니다.

Back To Top

PUN 보이스

안드로이드 6.0 권한

일반적으로 안드로이드 플랫폼용을 제작할 때, 유니티가 대부분의 권한을 자동적으로 manifest 파일에 추가해줍니다. Photon 보이스에 추가해주어야할 두 가지의 권한은 다음과 같습니다:

  • android.permission.INTERNET: 유니티의 플레이어 설정을 통해 자동적으로 추가 됩니다.
  • android.permission.RECORD_AUDIO: 유니티의 마이크 API가 사용되었을 때 자동으로 추가됩니다.

하지만, 안드로이드 마쉬멜로우에서는 새롭게 도입된 권한 모델에 의해 문제가 있을 수 있습니다. 생성된 APK 에서는 android.permission.RECORD_AUDIO 권한이 누락되어 어플리케이션이 음성을 녹음 할 수 없을 것 입니다. 안드로이드 SDK 레벨 23을 타켓으로 할 때 이런 문제점을 피하기 위해서는 최신의 유니티 버전으로 업데이트를 해 주시기 바랍니다.

유니티의 기본 행동에서는 어플리케이션이 열리자마자 모든 권한에 관련하여 물어보게됩니다. 이러한 사항은 "AndroidManifest.xml" 파일에 다음의 라인을 추가하여 없앨 수 있습니다.

이렇게 하면, 스스로 마이크 권한을 요청해주어야 합니다. 그렇지않으면 Photon 보이스가 동작하지 않게 됩니다.

Back To Top

유니티 마이크 이슈들

일부 유니티 버전에서 Microphone.Start() 는 널 포인터 예외가 발생하거나 0 개의 채널을 리턴할 수 있습니다. 0개의 채널을 리턴하는 것은 다음의 예외가 발생되도록 합니다.

ArgumentOutOfRangeException: Must be Mono or Stereo

그리고 일부 경우에 있어서, 보고된 샘플 레이트가 마이크 클립에서 0이 될 수 있습니다.

사용하고 있는 유니티 버전이 이러한 이슈들을 갖고 있는지는 유니티 이슈 트래커 링크 에서 확인 해 볼 수 있습니다.

기술문서 TOP으로 돌아가기