Multiplayer in Unity

1. UNet (now deprecated) : 거의 사용 X

2. Photon : Photon을 주로 사용 또는 자체적 프로그램으로 서버 구현

 

Photon 네트워크 서비스

- Player간 서버를 통해 Message를 주고 받으며 진행

-> 대표적으로 transform과 animation 동기화를 지원

- Photon은 대략 20fps로 메세지 전송

 

Master Server - 전 세계에 분포 (room들의 집합이다)

Master Server>room 

photon은 ping이 가장 적은 master server 선택

 

room에 있는 사람들끼리 동기화가 된다. (마스터 서버에 들어있는 사람들이 모두 동기화 되는게 아니다.)

 

네트워크에서 동기화를 시키기 위해서는 MonoBehaviourPunCallbacks

서버에 자동 연결 PhotonNetwork.ConnectUsingSetting();

PhotonNetwork.JoinOrCreateRoom("룸 이름", new RoomOptions { MaxPlayers = 6} // 최대 플레이어 수, null);

photonView.RPC("함수 이름",RpcTarget.All(모든 클라이언트),chatInput.text(메세지),NickNameInput.text(닉네임));

-> 자신이 정의한 함수가 아닌 원격 함수 호출

[PunRPC]

void SendMsg(string msg, string sender) {...}

 

동기화 가능한 Player를 만들기 위해서는 Prefab으로 객체를 준비해야한다.

 

photonView.IsMine = 자기 자신인지 확인

 

VR연동을 위해는 HMD 위치를 직접 제어하기 위하여 CameraRig를 이용해야한다.

-> CameraRig 찾기 Rig를 이용하여

'학교수업' 카테고리의 다른 글

웹개발기초 14주차  (0) 2021.12.04
정보보호개론 13주차  (0) 2021.12.04
가상현실 프로그래밍 12주차  (0) 2021.12.01
임베디드 기초 12주차  (0) 2021.11.30
정보보호개론 12주차  (0) 2021.11.27

+ Recent posts