Unity : 관리자 콘솔 구현 및 프리징 현상 개선
·
Unity
Unity DevConsole 프리징 개선 기록 : 반복 에러 콜랩스 + Flush 예산화 1) DevConsole의 기존 작동방식과 핵심 기술 이 DevConsole은 유니티 로그를 받아서 콘솔 UI에 텍스트로 뿌리는 구조다.핵심 흐름은 아래와 같았다.Application.logMessageReceivedThreaded 콜백으로 로그를 수신한다.유니티는 싱글쓰레드이기에 백그라운드 상의 멀티 쓰레드의 로그를 모두 수집하면 데드락 위험이 있어 lock 키워드를 통해 pending 버퍼에 로그를 쌓는 방식으로 데드락을 방지했다.콘솔이 열리면 버퍼에 쌓인 로그를 실제 콘솔 UI에 출력하는 lines 리스트에 옮긴다.lines 전체를 StringBuilder에 합쳐서 출력한다.추가로, “연속 중복(바로 직전 로..
Unity : Firebase 등록 및 Auth로 (이메일/소셜) 로그인 구현
·
Unity
Firebase애플리케이션 개발 시 백엔드 인프라 구축의 번거로움을 최소화하는 BaaS(Backend as a Service) 플랫폼이다.서버 코드 작성 및 인프라 관리 부담을 줄여 개발 효율성을 극대화하는 것을 목적으로 한다.즉, 우리는 Firebase를 이용해 간단한 인증부터 DB, API까지 여러 방면으로 서버 개발 없이 빠르게 활용할 수 있다. Firebase 등록 방법1. Firebase 검색 후 Firebase - Google 페이지로 들어간다2. Get started in console 3. 새 Firebase 프로젝트 만들기 클릭해서 프로젝트 만들기 4. 프로젝트 생성 프로젝트 이름을 지정하고 그 뒤에 Gemini 애널리틱스 사용 여부를 묻는데 그냥 둘다 사용 안 해도 된다.애널리틱스는 서..
Unity Network : Photon Pun2 - PhotonView, IPunObservable, RPC
·
Unity
PhotonViewPhoton 네트워크에서 동기화 단위의 기준점네트워크 상에서 하나의 오브젝트를 식별하는 IDRPC, 변수 동기화, Ownership 판단의 기준PhotonView가 없는 오브젝트는 네트워크에 존재하지 않는다역할설명네트워크 IDViewID로 객체 식별소유권 관리Owner / IsMineRPC 송신View 기준 호출변수 동기화Observe 대상 지정 PhotonView pv;pv.IsMine // 내가 소유한 오브젝트인가pv.Owner // 소유 Playerpv.Owner.ActorNumber // pv의 인덱스처럼 1000씩 증가하는 고유 값pv.ViewID // 네트워크 고유 IDpv.RPC(함수명, RpcTarget.Others, 함수 파라미터); IPunObserv..
Unity Network : Photon Pun 2 - Lobby / Room
·
Unity
Photon PUN2 : Lobby / Room Photon 네트워크의 전체 흐름 요약Photon PUN2에서 클라이언트는 다음과 같은 흐름으로 네트워크에 참여한다.Photon Server Connect → Lobby → Room → InGameLobby: 방 목록을 조회하고, 방을 고르는 대기 공간Room: 실제로 플레이어들이 모여 동기화된 게임을 진행하는 공간LobbyLobby는 말 그대로 방 목록을 관리하는 대기 공간이다.현재 열려 있는 Room 목록을 서버로부터 전달받는다플레이어는 여기서새로운 Room을 생성하거나기존 Room에 참가한다Lobby에 들어갔다고 해서 다른 플레이어와 동기화가 되는 것은 아니다.Lobby는 매칭을 위한 공간일 뿐이다.동기화X 없음게임 로직X 실행 불가Room 목록O 조..
네트워크 : OSI, TCP/IP, Client-Server, P2P
·
Unity
OSI 7계층OSI 7계층은 네트워크를 역할별로 나눈 개념적 모델이다.실제로는 TCP/IP 기반을 많이 사용하지만, 문제 발생시 어디 계층의 문제인지 나눠서 판단하기에 유용하다. 7Application게임 로직 메시지 (로그인, 이동, 공격, 채팅)6Presentation직렬화/역직렬화 (JSON, Protobuf, BitStream)5Session세션 유지, 재접속, 룸 개념4TransportTCP / UDP 선택3NetworkIP 기반 라우팅 (보통 의식할 일 거의 없음)2Data LinkNIC, LAN 환경1Physical케이블, 무선 신호1계층 : 물리 계층 (Physical Layer)네트워크 데이터가 전기적, 전자적 연결에 의해 전송되는 물리적 계층0과 1의 on off의 디지털 데이터를 전송..