프로그래밍/Unity

유니티 빌트인 네트워크) RPC(원격 프로시저 호출)

redjam0123 2017. 4. 9. 09:37

2016.07.25. 21:28

 

원격 프로시저 호출(RPC ; Remote Procedure Calls)


물리적으로 떨어져 있는 다른 디바이스의 함수를 호출하는 기능
RPC함수를 호출하면 네트워크를 통해 다른 사용자의 스크립트에서 해당 함수가 호출된다.

RPC함수를 정의할 때는 [RPC] 어트리뷰트를 함수 앞에 명기해야 한다.

 

RPC를 호출하려면 해당 스크립트가 있는 게임 오브젝트에 NetworkView 컴포넌트가 반드시
추가되어있어야 한다.

RPC함수는 세 개의 인자를 제공한다.
1. 호출할 함수명을 String타입으로 지정하는 인자
2. RPCMode지정하는 인자
RPCMode는 RPC함수를 호출할 대상으로 지정하는 옵션으로, 네트워크 사용자 중 호출할 대상을
선택할 수 있다.

NetworkView.RPC("함수명", RPCMode, 인자);

* RPCMode.Server : Server Client에 RPC를 호출한다.
* RPCMode.Others : 호출하는 자신을 제외한 나머지 모든 사용자의 RPC를 호출한다.
* RPCMode.OthersBuffered : RPCMode.Others와 동일하며 버퍼에 저장한 후 나중에 접속한 사용자에게도 RPC를 호출한다.
*RPCMode.All : 호출한 자신을 포함해 모든 사용자의 RPC를 호출한다.
*RPCMode.AllBuffered : RPCMode.All과 동일하며 버퍼에 저장한 후 나중에 접속한 모든 사용자에게 RPC를 호출한다.


RPCMode.OthersBuffered와 RPCMode.AllBuffered 옵션은 이미 접속해 있는 사용자에게는
RPC함수를 바로 호출해 주고, 나중에 접속한 사용자에게는 버퍼에 저장된 RPC 호출 정보를 전달한다.
(ex: 플레이되고 있는 방에 입장했을 때 기존에 접속해있던 사용자의 채팅 메시지가 나중에 접속한
사용자에게도 보이는것)

3.추가로 전달해야 하는 값을 전달할 수 있으며, int, float, string, NetworkPlayer, NetworkViewID,
Vector3, Qaternion 타입의 인자를 전달할 수 있는 인자

'프로그래밍 > Unity' 카테고리의 다른 글

2016.08.15. 18:42  (0) 2017.04.09
2016.08.09. 20:12  (0) 2017.04.09
유니티 빌트인 네트워크) 상태동기화  (0) 2017.04.09
유니티 빌트인 네트워크)네트워크 뷰  (0) 2017.04.09
2016.07.18. 23:23  (0) 2017.04.09