[2026.4.21] Scene / Object Spawn / Host Disconnect

SmartBear·2026년 4월 22일

네트워크 씬 전환

  • 당연하지만, 같은 네트워크상에서 모든 플레이어는 같이 씬이 전환이 되어야 한다.
  • MMORPG 같은 타입은 제외.

일반 vs 네트워크

방식API호출 주체사용 시점
일반 씬 전환SceneManager.LoadScene()누구나네트워크 연결 전
네트워크 씬 전환NetworkManager.SceneManager.LoadScene()Host 만네트워크 연결 후
  • 즉, 네트워크 씬 전환은 Host 에서 실행 (IsServer)
  • 흐름적으로
    • 타이틀 씬; 일반
    • 로비 입장 씬; 일반
    • 룸 입장 씬; 일반
    • 게임 스타트; 호스트
    • 게임 내 씬 전환; 호스트
    • 게임 결과; 호스트
    • 로비로 전환; 일반

Object Spawn

  • 네트워크 상에 Object 를 띄워야 할 경우 사용.
메서드동작
Spawn()서버 소유로 스폰. 플레이어 객체로 지정되지 않음.
SpawnWithOwnership(clientId)특정 클라이언트 소유로 스폰. 플레이어 객체로 지정되지 않음.
SpawnAsPlayerObject(clientId)특정 클라이언트의 플레이어 객체로 스폰. 플레이어 캐릭터에 사용.
  • 네트워크에 Spwan 하는 함수는 Host(Server) 에서만 실행 가능.

Host Disconnect Handling

  • Host 가 Network 에서 이탈하면 모든 Client 가 이탈됨.
전략동작
안전한 종료이탈 감지 → 클라이언트가 연결 씬으로 복귀
Host Migration새 Host 선출 + 게임 상태 복원 후 게임 계속
Dedicated Server별도 서버가 항상 운영되어 이탈 영향 없음

접속 관리 API 정리

  • ConnectedClientsIds: 현재 접속 중인 모든 클라이언트 ID 리스트 (Host 포함)
  • LocalClientId: 자기 자신의 클라이언트 ID
  • OnClientConnectedCallback: 새 클라이언트가 접속했을 때 호출
  • OnClientDisconnectCallback: 클라이언트가 연결 해제되었을 때 호출
  • Shutdown(): 네트워크 연결 종료
profile
Python Dev with Infra -> Game Programmer

0개의 댓글