자료실

[Photon 튜토리얼]RPC 알아보기
작성자 | admin 2020-11-16  |    조회수 : 2010  

포톤은 여러 서비스를 제공합니다.
Realtime, PUN 등등

그 중 PUN은 원격프로시저호출(Remote Procedure Call)을 지원합니다.





* 프로시저(Procedure)란?


- 루틴이나 서브루틴 및 함수와 같은 뜻
- 어떤 행동을 수행하기 위한 일련의 작업순서


* 원격프로시저 호출(Remote Procedure Call)이란?


원격제어를 통해 함수나 프로시저의 실행을 허용하는 기술
사용예시: 윈도우 인증, SMS 서버 등등



이를 게임에 적용해보면, 같은 룸에 있는 다른 유저(클라이언트)의 함수를 실행하는 것입니다.

API 중 PhotonView 클래스 (http://doc-api.photonengine.com/en/PUN/current/class_photon_view.html)를 보면

void PhotonView.RPC (string methodName, PhotonTargets targets, params object[] parameters)와 같이 나와있습니다.

유니티에 적용하려면 PunRPC 속성을 적용해야합니다.
이제 실제로 적용해보기 위해 유니티짱 프로젝트를 이용해보겠습니다.



유니티짱 프로젝트는 아래 링크로 가시면 자세히 보실 수 있습니다.
http://photonkr.tistory.com/6?category=1000132





위 '유니티짱을 이용한 PUN 시작하기' 포스팅을 차근차근 따라하시면 RPC를 알아보기 위한 base 프로젝트가 완성이 됩니다.




RPC 가 호출될 시점은 유니티짱이 룸에 입장할때 입니다.
유니티짱(플레이어 캐릭터)와 컨트롤러에 RPC 코드를 작성하겠습니다.




유니티짱에는 위와 같이 작성하겠습니다.
PhotonView 를 찾고, RPC 함수를 호출하겠습니다.
모든 대상에 RPC를 호출하고, 'RPC success'라는 메시지를 보내겠습니다.





그리고, 유니티짱에는 위 소스(SendMessage.cs)를 컴포넌트에 넣겠습니다.





컨트롤러에는 RPC가 호출되면 로그 찍히도록 작성하겠습니다.





그리고 컨트롤러에는 PhotonView 컴포넌트를 추가하겠습니다.



이제 빌드앤런을 해보세요


보낸 메시지가 성공적으로 잘 찍혔습니다. 이상 RPC 에 대해 알아보았습니다.





★Photon 공식 홈페이지
https://www.photonengine.com/ko-kr/Photon

★Photon Help Center
https://support.photonengine.jp/hc/ko