산학프로젝트 RPC통신

이준영·2022년 10월 7일
0

Unity 에서 호스트가 pdf파일 URL을 입력하면 접속한 유저들이 그 URL을 같이
공유할 수 있게 만들고 pdf viewer로 볼 수 있게 만든다.
그리고 호스트가 보는 페이지도 같이 연동되어 보이게 만든다.


변수선언

URL을 가져오기 위한 path변수와 현재 페이지 번호를 알기 위한 page_num변수를 선언하였다.
이 변수들은 서버와 클라이언트끼리 동기화가 되어야 하기 때문에 SyncVar로 묶어 주었다.


URL 입력

Trigger함수를 통해 발판을 밟으면 URL입력칸이 나타나고 inputField.onValueChanged.AddListener(함수명);을 통해 path변수에 입력한 URL로 넣어준다.


업로드

이제 URL을 다 입력하고 UPLOAD버튼을 누르게 되면 그 서버안에서 pdf를 띄울 것이다. 이때 호스트만 직접적으로 수정하게 만들 것이다.

isServer조건문으로 호스트만 Upload를 할 수 있게 만들었고 클라이언트들은 업로드를 못하게 만들었다.

서버와 클라이언트 간에 상호작용을 하기 위해 유니티 Unet에서 지원하는 코드가 있다.
클라이언트가 호출하고 서버에서 수행하는 Command
서버에서 호출하고 클라이언트에서 수행하는 Client Rpc가 있다.

여기서는 Client Rpc를 사용할 것이다.
사용방법은 함수앞에 속성값으로 [ClientRpc]를 적어주고 함수명은 Rpc+함수명으로 적어야 되는 규칙이 있다.


이렇게 페이지를 넘기는 스크립트도 RPC통신으로 현재 페이지를 동기화 시키는 것을 알 수 있다.


결과

0개의 댓글