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 |