Unity 9

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

[Unity] pc 게임 네이버 로그인 연동하기(2)

시간이 흘러 문제가 발생함↓문제 상황결국은 스키마 URI를 통해 로그인 개발을 진행하였었다.그런데 어떤 팀원이 기발한 생각을 들고 오심... 기존 로그인 플로우 1. 로그인 요청빌드된 게임 프로그램에서 사용자가 로그인 버튼을 클릭하면, 게임은 로그인 웹사이트로 로그인 요청을 보냄. 2. 네이버 로그인로그인 웹사이트에서는 사용자를 네이버 로그인 화면으로 리다이렉트하여 네이버 계정으로 인증을 진행. 3. 세션 생성 및 전달사용자가 네이버 로그인에 성공하면, 네이버 서버는 세션을 생성하고 이를 서버에 전달.** 세션이 아닌 인증정보를 가진 토큰을 반환(OAuth2.0 방식) 4. 세션 값 전달서버는 생성된 세션 값을 포함한 스키마 URI를 사용하여 클라이언트(게임 프로그램)에 전달.-> 전달받은 정보를 토대로..

Unity 2024.09.22

[Unity] pc 게임 네이버 로그인 연동하기(1)

블로그에 한 번 작성한 적 있는 게시글 입니다.(2023.7.4) 기획팀에서 네이버와 구글을 통해서 로그인 됐으면 좋겠다고 하여 (....) 난생 처음 유니티에서 타 sns를 활용한 로그인 구현을 진행해보았다.​근데 왠걸.. 처음에 열심히 자료 찾아봤을땐 전부 Unity Android나 IOS 플랫폼, 모바일 등..에서 구현하는 방법 밖에 나오지 않았다. 참고는 못하겠다 싶어서 결국 네이버 개발자 문서를 찾아보게 되었다.​유니티 pc 게임 (Windows App) 네이버 로그인 방법​1. 애플리케이션 등록https://developers.naver.com/apps/#/register?api=nvlogin 로그인 구현하기 전 일단 이 링크에서 본인이 개발할 애플리케이션을 등록해줘야한다.필요한 정보들을 체크..

Unity 2024.09.21

[Unity] 방 꾸미기(마이룸) 기능 구현(1) - Mesh 타일 생성

↓안 봐도 되는 사담더보기예전에 어느 프로젝트를 진행하면서 간단하게 진행했다가 사정상 멈췄던(사실상 끝난..) 방꾸미기 기능을 다른 프로젝트에서 운 좋게 진행 할 수 있게 되었다! 그래서 그 때보다 더 발전된 실력으로 진행해보는 방꾸미기 기능. 근데 방 꾸미기 게임, 흔히 마이룸이라고 하는 류의 게임은 인기가 많은 편인데, 게임 개발 관련해서는 자료가 잘 안나오는 편이다. 왜지?마이룸에서 타일을 생성하는 부분에 대한 포스팅이다. 중간에 Mesh에 대한 설명도 나온다. 마이룸 꾸미기에서 가장 처음 개발되어야하는 것은 당연 "타일"이다.그 타일 위에 가구들이 배치, 회전등이 가능해야한다.그저 오브젝트를 갖다가 놓는 자리에 배치할 수도 있겠지만, 그렇게 되면 이상하게 공중에 가구가 놓여지는 경우나, 여러개가 ..

Unity/게임개발 2024.09.21

[Unity2D] 캐릭터를 따라다니는 카메라 구현

[담은 내용]- 캐릭터를 따라다니는 카메라 구현- Mathf.Lerp 선형보간 개념- 유니티 2D에서의 z축의 의미- 유니티의 Life Cycle 함수들의 개념​Lerp 함수를 이용하여 캐릭터를 따라다니는 카메라를 구현해보고자 한다.유니티를 처음 손대는 사람들을 위해 아주 기본적인 내용도 포함되어 있다.​using System.Collections; using System.Collections.Generic; using UnityEngine; public class cameraCtrl : MonoBehaviour { public GameObject model; Transform model_t; void Start() { model_t = model.transform; } voi..

Unity/게임개발 2024.08.25

[Unity] VR visual studio code 연동 문제 해결

[예전글 다시 업로드] 유니티로 VR 개발하다 보면 아마 visual studio보다 vscode가 훨씬 가볍게 돌아간다는 말을 들었을 수도있다. 근데 vscode가 더 좋다고 한들... 연동이 좀 까다로움.. 연동하면서 나타난 오류는'gameobject' does not contain a definition for 'setactive' and no accessible extension method 'setactive' accepting a first argument of type 'gameobject' could be found (are you missing a using directive or an assembly reference?) 문제는 역시나 그저 내 vscode 연동이 잘 안되어있어서 gam..

Unity 2024.08.25