Unity(187)
-
네트워크의 비밀 요원, ARP: IP 주소로 진짜 집 찾기
인터넷이라는 거대한 가상 세계에서, 우리는 매일 'IP 주소'라는 가상의 주소를 사용해 데이터를 주고받습니다. 하지만 실제로 데이터가 도착해야 할 곳은 '물리적인 LAN 카드'가 있는 진짜 컴퓨터입니다. 비유하자면, IP 주소는 '지도 위의 위치'라면, MAC 주소는 '진짜 대문 앞'이죠.지도 위의 위치(IP)를 알더라도, 진짜 집(MAC)으로 배달하려면 누군가가 그 정보를 연결해 주어야 합니다. 바로 그 역할을 수행하는 것이 네트워크계의 비밀 요원, ARP (Address Resolution Protocol)입니다. 오늘은 이 ARP 요원의 활약상을 쉽고 기억에 오래 남게 파헤쳐 보겠습니다. 1. 가상 주소(IP) vs 진짜 주소(MAC)먼저 기초부터 확실히 다져볼까요? 데이터 통신에는 두 가지 주소가..
2026.04.13 -
유니티 에셋 스토어 소스 코드, 직접 수정 없이 안전하게 커스터마이징 하는 방법 (업데이트 문제 해결)
유니티 에셋 스토어 소스 코드, 직접 수정 없이 안전하게 커스터마이징 하는 방법 (업데이트 문제 해결) 안녕하세요! 유니티 개발자 여러분, 프로젝트의 속도를 비약적으로 올려주는 에셋 스토어는 정말 축복 같은 존재입니다. 하지만 이 편리함 뒤에는 종종 예상치 못한 고민이 따르곤 합니다. 바로 구매한 에셋의 핵심 기능을 내 프로젝트에 맞게 수정, 추가, 또는 제거해야 하는 상황이죠.가장 손쉬운 방법은 물론 에셋의 코어 스크립트, 즉 소스 코드를 직접 열어 수정하는 것입니다. 하지만 이런 '직접 수정'은 에셋 개발자가 새로운 버전을 배포했을 때 심각한 문제를 일으킬 수 있습니다. 업데이트를 진행하면 내가 공들여 수정했던 코드가 전부 사라져 버리는 대참사가 발생하기 때문입니다. 저 역시 초보 시절, 아무것도 모..
2025.08.27 -
당신의 유니티 앱이 무거운 진짜 이유: UPM 패키지 최적화 완벽 가이드 (빌드 용량 20MB 줄이기)
당신의 유니티 앱이 무거운 진짜 이유: UPM 패키지 최적화 완벽 가이드 (빌드 용량 20MB 줄이기)도입: "분명 간단한 앱인데, 왜 이렇게 용량이 크지?" Unity로 간단한 2D 정보 앱이나 캐주얼 게임을 만들고 첫 빌드를 했을 때, 생각보다 큰 앱 용량에 당황한 경험이 있으신가요? 코드는 몇 줄 없고, 사용한 이미지 리소스도 얼마 없는데 안드로이드 기준 30MB를 훌쩍 넘는 빌드 파일(.apk)을 보며 의문이 들었을 겁니다. 그 원인은 바로 우리가 무심코 지나쳤던 **UPM(Unity Package Manager)**에 숨어있을 가능성이 큽니다.이 글에서는 Unity 프로젝트의 빌드 용량을 결정하는 핵심 요소인 UPM의 패키지들을 이해하고, 불필요한 기능들을 덜어내어 프로젝트를 가볍게 만드는 '프..
2025.08.24 -
[Unity] 인스펙터 값이 저장해도 초기화될 때, 범인은 ExecuteAlways! (Application.isPlaying으로 완벽 해결)
[Unity] 인스펙터 값이 저장해도 초기화될 때, 범인은 ExecuteAlways! (Application.isPlaying으로 완벽 해결) 유니티(Unity)로 개발할 때 마주치는 가장 당혹스러운 문제 중 하나는, 분명히 인스펙터(Inspector)에서 값을 설정하고 씬을 저장했는데도 불구하고, 특정 조건 하에 그 값이 초기화되는 현상입니다. 마치 유령처럼 사라지는 이 값 때문에 원인을 찾느라 소중한 개발 시간을 허비하는 경우가 많습니다.이 문제는 단순히 플레이 버튼을 눌렀을 때뿐만 아니라, 에디터 상에서 게임 오브젝트를 비활성화했다가 다시 켜는 것만으로도 발생할 수 있어 개발자를 더욱 혼란에 빠뜨립니다. 이 글에서는 해당 문제의 근본적인 원인과, 아주 간단하고 명쾌한 해결책을 제시합니다. 현상 분..
2025.08.22 -
유니티 고수만 아는 싱글턴 관리 비법: '이 코드' 한 줄로 하이어라키(Hierarchy) 깔끔하게 정리하기
유니티 고수만 아는 싱글턴 관리 비법: '이 코드' 한 줄로 하이어라키(Hierarchy) 깔끔하게 정리하기 안녕하세요, 유니티 개발자 여러분!혹시 여러분의 유니티 프로젝트 하이어라키(Hierarchy) 창은 안녕하신가요? 프로젝트 규모가 조금만 커져도 GameManager, SoundManager, UIManager, DataManager 등... 온갖 매니저들이 최상단(루트)에 흩어져 지저분해 보이는 경험, 다들 한 번쯤은 있으실 겁니다."어쩔 수 없지. 싱글턴 매니저는 DontDestroyOnLoad를 써야 하고, 그건 루트 오브젝트에만 되니까..."라고 생각하며 스스로를 위로하셨나요? 오늘, 그 고정관념을 깨뜨릴 아주 우아하고 참신한 방법을 소개해 드리고자 합니다. 단 한 줄의 코드로 지저분했던..
2025.08.22 -
Unity 이벤트 값 전달이 안될 때? 99%는 이 문제입니다 (동적 vs 정적)
Unity 이벤트 값 전달이 안될 때? 99%는 이 문제입니다 (동적 vs 정적) 서론: 분명 호출되는데, 값은 왜 비어있을까?Unity 개발자라면 누구나 한 번쯤 UI 이벤트를 사용해 봤을 겁니다. 버튼의 OnClick, 입력 필드의 OnEndEdit 등은 가장 기본적인 상호작용의 시작점이죠. 그런데 분명히 함수를 연결했고, 콘솔에 로그도 찍히는데 정작 중요한 값(Parameter)이 전달되지 않는 이상한 경험을 해보신 적 없으신가요?"분명 OnEndEdit에 함수를 연결했는데, Debug.Log는 호출되지만 텍스트가 비어있어요. Unity 버그인가요?"결론부터 말씀드리면, 99%의 확률로 버그가 아닙니다. 이것은 Unity Inspector가 가진 강력하지만 때로는 헷갈리는 기능, 바로 동적(Dyn..
2025.08.21