반응형
서론 그 간 유니티를 통해서 콘텐츠를 개발하는 것은 나에게 익숙한 영역이었다. 필요에 따라서 안드로이드를 타겟으로 빌드를 하기도 하고, VR의 HMD 실행 환경에 따라 Standalone 환경에서 개발을 진행했고, 웹으로 결과물을 공유해야 할 땐 Unity WebGL 빌드가 당연한 선택지였다. 특히 최근 Unity 6가 출시되면서 웹 지원은 'WebGL'을 넘어 'Unity Web'이라는 강력한 플랫폼으로 격상되었다. 이전의 단점들이었던 2GB -> 4GB 메모리 지원, 모바일 웹 공식 지원, 웹 어셈블리 멀티스레딩을 통한 성능 향상 등 이전과 비교가 불가할 정도로 웹 환경이 강력해졌다. 하지만 종종 면접을 보거나 업계에서 요구하는 기술들이 무엇이 있는지 확인차 구직 사이트를 보다보면 종종 요구되는 ..
https://youtu.be/k0OkqIadB9Y 개요이번엔 타워 배치 시스템을 구현해보았다. 먼저 전체적인 로직 흐름은 다음과 같다. 타워 선택 -> 타워 상세정보 표시 -> 타워 구매버튼 클릭 -> 배치 가능한 지형 위로 드래그 -> 배치 가능 지형에 배치 확정 시 스테이지 포인트 차감 TowerDataSO라는 타워 관리 ScriptableObject 데이터를 통해 TowerListView에 표시하고, View에 표시되는 타워 요소인 TowerListItem을 선택해 TowerSelectionController가 View간의 Controller역할을 해 마찬가지로 SO를 넘겨 TowerInfoView에 선택한 타워의 정보를 표시하기까지는 큰 어려움이 없었던 것 같다. 다만 타워의 더미를 만..
using UnityEngine;[ExecuteAlways] // 편집 모드에서도 회전이 갱신public class BillBoard : MonoBehaviour{ Camera _cam; void Awake() { //씬에 MainCamera 태그 달린 카메라 찾기 if (Camera.main != null) _cam = Camera.main; } void LateUpdate() { if (_cam == null) return; // 1) 월드-스페이스 오브젝트의 앞면(+Z축)을 카메라가 있는 방향으로 향하게 Vector3 dir = (_cam.transform.position - transform.pos..
MVC 패턴 개념 정리역할책임Model• 데이터(상태) 보관 및 갱신 로직• 상태 변경 시 이벤트(옵저버) 발행View• 화면 렌더링·UI 표시 담당• Model 이벤트 구독 혹은 Controller 명령에 반응Controller• 사용자 입력·AI·타이머 등 이벤트 수신• Model 업데이트 및 View 제어 명령관심사 분리 : 데이터 로직 표현을 분리해 각 클래스가 단일 책임(SRP)을 갖도록함유닛테스트 가능 : Model과 Controller는 MonoBehaviour에 의존하지 않고 순수 클래스여서 테스트 작성 쉬움유연한 확장 : View를 바꿔도 Model-Controller 변경 없이 재사용 가능 간단 예시 (버튼 누르면 점수 +1)ScoreModel 생성 -> ScoreView 바인딩 -..