unity 5

Unity 유니티 MVP 패턴 설계 정리

유니티에서 UI가 많아질수록 코드가 복잡해지고 수정하기 어려워지는데,이를 구조적으로 관리하기 위해 MVP패턴을 적용할 수 있다.본 글에서는 MVP 패턴의 기본 개념부터, Presenter, View, Model의 기본 설계 및 구현, 이벤트 처리 방식, DTO 활용법, AddUILitener 까지 정리한다.MVP 패턴이란?MVP는 UI와 비즈니스 로직을 명확히 분리하기 위한 구조이다.Model: 데이터를 보관하고 상태를 관리한다. View: 사용자가 직접 보고 상호작용하는 화면 요소 담당. 사용자 입력을 Presenter로 전달하고, Presenter에서의 호출을 통해 UI를 업데이트 한다.Presenter: Model과 View의 중재자. View로부터 입력 이벤트를 받으면 Model을 업데이트하고, ..

Unity/게임개발 2025.07.05

Photon 동기화 과정 정리 – HP(체력바) UI 예시

캐릭터에 체력바(HUD)를 붙여놓고 멀티플레이 환경에서 상대 체력이 실시간으로 변하는 걸 예시로 포톤에서 동기화 과정을 정리한다.1. 기본 구조Player 프리팹에는 다음과 같은 컴포넌트가 붙어있다:PhotonViewPlayerStatus → 체력 관리PlayerHUD → 체력 UI (Slider)내 클라이언트에서도, 상대 클라이언트에서도 모든 캐릭터 오브젝트가 존재한다.즉, 내 캐릭터, 상대 캐릭터 전부 다 PlayerStatus, PlayerHUD를 갖고 있음.차이점은 PhotonView.IsMine 값이 다르다는 것. 2. 체력 변화 → RPC로 동기화내 캐릭터가 데미지를 받았을 때:[PunRPC]public void TakeDamage(int damage){ if (!photonView.Is..

Unity/게임개발 2025.07.03

Unity 유니티 HTTP 서버 통신 모듈 구현 (2)

이전 글 ↓↓https://hanni01.tistory.com/9 Unity 유니티 HTTP 게임 서버 통신 모듈 구현까마득한 예전 작업을 이제서야 정리하는 글.게임 개발 중에 서버와의 소통을 위한 통신 모듈을 만들 필요가 있었다.그래서 여러 사이트들을 참고하여 구현해본 HTTP 통신모듈 유니티이기 때문hanni01.tistory.com 유니티 클라이언트와 게임 서버간의 HTTP 통신을 위해 구현했던 모듈을 개선할 필요가 생겼다.HTTP 모듈 뿐만 아니라 게임 전체적으로 사실 코루틴을 많이 사용했었는데, 이 코루틴이1. 객체를 생성할 때 힙 메모리에 할당이 돼서, 반복적으로 객체를 생성하면 성능을 잡아먹게 된다는 것.2. 코루틴은 IEnumerator를 반환하고, 비동기 실행이 끝난 후 값을 직접 반환할..

Unity/게임개발 2025.04.01

Unity 유니티 HTTP 게임 서버 통신 모듈 구현

까마득한 예전 작업을 이제서야 정리하는 글.게임 개발 중에 서버와의 소통을 위한 통신 모듈을 만들 필요가 있었다.그래서 여러 사이트들을 참고하여 구현해본 HTTP 통신모듈 유니티이기 때문에 C#으로 진행한다.그리고 다음 라이브러리들이 필요하다.  using Newtonsoft.Json; using Newtonsoft.Json.Linq; using UnityEngine.Networking; 게임 개발하면서 네트워크와 관련된 작업은 이번이 처음이었기에 솔직히 뭘 어떻게 해야하는건지 하나도 몰랐었다.하지만 웹/앱 개발도 병행 중에 있었기에 형태가 어떻게 되야할 것이다 하는 감은 있어서 다행이었다. 대충 웹/앱에서는 GET, POST, UPDATE, DELETE로 요청 타입을 크게 나눌 수 있는데, 게임 서버 ..

Unity/게임개발 2025.03.27

[C#] 메모리 영역, struct, class, transform, vector이해

c#에서의 struct와 class차이에 대해 알아보자​*잠깐*c++ 에서 struct(구조체)와 class(클래스)의 차이는 접근제어에 있다.struct는 기본 public 이며 class는 private이다.  둘의 차이점을 알면 메모리를 절약할 수 있어 성능개선에 도움이 된다.그럼 일단 그 메모리가 어떤건지에 대해 알아보자​메모리프로그램을 실행 시키면 그 프로그램을 실행시키기 위해 메모리 공간을 할당해준다.메모리 공간은 크게 스택(Stack), 힙(Heap)영역으로 나뉜다.  "c#에서는 value type(값)은 stack에 저장되고, reference type(참조)은 heap에 저장된다."  스택(Stack)함수 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역따라서 함수 호출과 함께 할당..