프로그래밍 농장

[해결] Received OnSerialization for view ID 2001. We have no such PhotonView! Ignored this if you're leaving a room. [Unity] 본문

Unity

[해결] Received OnSerialization for view ID 2001. We have no such PhotonView! Ignored this if you're leaving a room. [Unity]

Tennessee201 2022. 10. 26.
728x90

유니티 멀티플랫폼 게임을 제작하는 과정에서 문제가 생겨서 이를 해결하고 포스팅으로 남기고자 한다.

오픈월드기반으로 제작한 게임에 멀티플레이 기능을 추가하기 위하여 Photon을 사용하였다. 이 과정에서 LobbyScene 에서 MainScene으로 넘어가는 과정에서 플레이어를 Instantiate할때 아래와 같은 에러메세지가 출력되며 정상적으로 플레이어가 생성되지 않는 문제가 발생하였다.

Received OnSerialization for view ID 2001. We have no such PhotonView! Ignored this if you're leaving a room.

 

구글링을 해보니 대부분 생성할 Prefab 오브젝트에 PhotonView를 정상적으로 설정, 또는 추가하지 않아서 데이터를 수신받고있지만, 타 플레이어의 화면에서 그리지못하고 있다는 문제였다.

또 이 과정에서 'Delay'를 적용해보라는 말이 있었다. 

 

Received OnSerialization for view ID xxxx We have no such photon view.

I have a racing game where the master client is able to change the scene / track that players are racing on at any time.

forum.photonengine.com

 


하지만 본인은 PhotonView에 대한 문제도 없었고, 위의 Delay에 대해서도 이해가 잘 되지 않았다.

결국 종단점부터 문제를 찾기 위해서 Cube오브젝트를 생성하고 이를 Instantiate Object로 한 후, 인스펙터를 하나씩 추가해주며 확인하였다.

그 결과, 프리팹이 가지고 있는 스크립트 중, 인벤토리관리를 위한 스크립트에서의 싱글톤 코드가 문제라는 점을 파악하였다.

문제코드는 아래와 같았다. 

인벤토리관리를 위하여 작성한 코드에서 static 부분이 문제를 일으킨것으로 판단되었다. 이후 해당코드를 주석처리하고 개체참조를 하는방식으로 수정해놓았다. 

그러니 해당 문제가 해결되었다. 문제를 해결한 이후에서야 위에서 'Delay'를 적용시켜보라는 말의 뜻이 이해되었다. 

본인과 같은 문제가 발생하면 위와 같은 문제 또는 PhotonView 설정에 관한 문제 중 하나임으로 참고하면 될것같다. 

728x90