Unity & Photon 네트워킹 정리 문서
1. 네트워크 기본
- TCP (Transmission Control Protocol)
- 연결 지향, 신뢰성·순서 보장.
 - 채팅, 인벤토리, 상점과 같은 정확성이 중요한 데이터 전송에 적합.
 
 - UDP (User Datagram Protocol)
- 비연결, 빠르지만 손실 가능.
 - 캐릭터 이동, 실시간 액션 이벤트에 적합.
 
 
→ 실무에서는 TCP + UDP 혼용 구조가 일반적이다.
2. PhotonView
Photon에서 모든 네트워크 오브젝트는 PhotonView를 통해 관리된다.
- ViewID : 네트워크 고유 식별자.
 - IsMine : 로컬 클라이언트가 소유자인 경우 true.
 - Owner : 오브젝트를 소유한 Photon.Realtime.Player 객체.
 - TransferOwnership() : 런타임에 소유권을 다른 플레이어로 이전 가능.
 
if (photonView.IsMine)
{
    // 내 오브젝트일 때만 조작 처리
}
3. Photon Transform View
Transform 정보를 자동으로 동기화하는 전용 컴포넌트.
- 옵션:
- Synchronize Position / Rotation / Scale
 - Interpolate (Lerp / Teleport)
 
 - 장점: 코드 작성 없이 이동/회전 동기화 가능.
 - 단점: 모든 프레임 동기화 시 네트워크 트래픽이 커질 수 있음.
 
4. PunRPC & photonView.RPC
Photon의 Remote Procedure Call 시스템.
- [PunRPC] : 원격 호출 가능한 메서드 지정.
 - photonView.RPC("함수명", RpcTarget, 매개변수...) : 지정 범위에 RPC 호출.
 
RpcTarget 종류
- All : 모든 클라이언트(자신 포함).
 - AllBuffered : 모든 클라이언트 + 이후 입장하는 클라이언트.
 - Others : 자신 제외 모든 클라이언트.
 - MasterClient : 마스터 클라이언트만.
 
[PunRPC]
void Fire(Vector3 pos) { /* 발사 처리 */ }
photonView.RPC("Fire", RpcTarget.All, transform.position);
5. MonoBehaviourPun / MonoBehaviourPunCallbacks
- MonoBehaviourPun
- MonoBehaviour 확장.
 - photonView 프로퍼티 제공 → PhotonView 접근이 간편.
 - 개별 오브젝트 제어 스크립트에 적합.
 
 - MonoBehaviourPunCallbacks
- MonoBehaviourPun 확장.
 - Photon의 네트워크 콜백 메서드를 override 가능.
 - 예시: OnConnectedToMaster(), OnJoinedRoom(), OnPlayerEnteredRoom(Player)
 - 네트워크 매니저/룸 매니저 스크립트에 적합.
 
 
6. Unity 프로젝트 창 아이콘
Unity 프로젝트 창에서 에셋 종류와 상태를 나타내는 아이콘.
- 에셋 타입
- 📄 스크립트 (C#)
 - 🧩 프리팹 (파랑: 원본, 회색: 인스턴스, 깨짐: 연결 끊김)
 - 🎞 애니메이션, 🎬 애니메이터, 🔊 오디오, ⛶ 머티리얼, 🌍 씬
 
 - 오버레이 아이콘
- 🔗 Prefab 연결 상태
 - ⚠ 스크립트 경고
 - ❌ 스크립트 에러
 
 
7. Multiplayer Movement 패턴
멀티플레이어 이동을 구현할 때 고려해야 할 대표적인 구조.
- 서버 권위(Server Authoritative)
- 서버가 입력을 받아 이동 계산.
 - 장점: 공정성, 치트 방지 / 단점: 반응성 저하.
 
 - 클라이언트 예측(Client-side Prediction) + 서버 보정(Reconciliation)
- 클라이언트가 먼저 이동 예측 후 서버 확정 값으로 보정.
 - 장점: 반응성 확보 / 단점: 구현 복잡.
 
 - 보간(Interpolation)
- 서버 좌표만 받아와 보간 처리.
 - 장점: 구현 단순 / 단점: 입력 반응 느림.
 
 
→ Unity 프레임워크별 기본 제공 방식
- NGO : NetworkTransform
 - Mirror : NetworkTransform 또는 Command/Rpc
 - Photon PUN : PhotonTransformView, RPC
 - Photon Fusion : Input Authority / State Authority 구조
 
'멋사교육' 카테고리의 다른 글
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 54일차 (4) | 2025.08.04 | 
|---|---|
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 52일차 (1) | 2025.08.01 | 
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 51일차 (0) | 2025.07.30 | 
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 21일차 (0) | 2025.06.13 | 
| 멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 11일차 (2) | 2025.05.28 |