전체 글(61)
-
[Git] 엑셀(.xlsx) 파일 변경 사항(Diff) 확인하는 방법
게임 개발을 하다 보면 기획 데이터나 밸런스 테이블을 엑셀(xlsx)로 관리하는 경우가 많습니다. 하지만 엑셀은 바이너리 파일이라 Git에 올리면 기록이 제대로 남지 않습니다. 누가 어떤 데이터를 잘못 수정했는지 추적하기 어려워 간혹 잘못된 데이터가 빌드에 포함되는 휴먼 에러가 발생하기도 합니다. 이런 불편함을 해결하기 위해, Git에서 엑셀 파일의 diff를 명확하게 볼 수 있는 방법을 공유합니다. Git에는 바이너리 파일을 비교하기 전, 임시로 텍스트 파일로 변환하여 대조해 주는 textconv 기능이 있습니다. 엑셀 파일을 백그라운드에서 임시로 CSV 텍스트로 변환해 주는 파이썬 스크립트를 연결하여, Git과 Fork 같은 GUI 앱이 그 텍스트를 대조해 변경 사항을 눈으로 보여주도록 만들 것입니다..
2026.07.20 -
유니티 에디터에 커스텀툴바를 활용해서 ( 타임스케일 수정 ) 추가하기
Unity에서 게임 테스트 시 배속(TimeScale) 조정은 필수적이지만, 기본 에디터에서 접근하기 불편합니다. 저는 이 문제를 해결하고자, 가장 눈에 잘 띄는 플레이 버튼 왼쪽에 TimeScale 컨트롤 그룹을 배치했습니다.공식 API를 우회하는 리플렉션과 UI Toolkit으로 구현한 이 기능을 통해, 개발 흐름을 끊지 않고 빠르게 배속을 제어할 수 있습니다. TimeScaleToolbar.cs #if UNITY_EDITORusing System.Reflection;using UnityEditor;using UnityEngine;using UnityEngine.UIElements;[InitializeOnLoad]public static class TimeScaleToolbar{ priv..
2025.09.28 -
유니티 에디터에 커스텀툴바를 활용해서 ( 씬 이동 ) 추가하기
Unity에서 작업하다 보면 테스트용 씬과 메인 씬을 자주 오가게 되는 경우가 많습니다. 그럴 때마다 Project 창을 열고 해당 씬을 찾아서 여는 작업이 반복되는데, 생각보다 번거롭게 느껴졌습니다. 처음에는 메뉴 항목을 만들어서 씬을 전환해보기도 했지만, 눈에 잘 띄지 않는다는 단점이 있었습니다. 그래서 툴바 쪽, 특히 플레이 버튼 왼쪽에 직접 드롭다운을 배치하면 어떨까 하는 생각이 들었습니다. 공식 API만으로는 해당 위치에 UI를 추가하기 어렵기 때문에, Unity의 Toolbar 내부를 리플렉션으로 접근하여 직접 VisualElement를 삽입하는 방식으로 구현했습니다. 씬 목록은 정해진 위치폴더 하위의 씬들을 자동으로 불러오며,툴바에 드롭다운 형태로 삽입했기 때문에 작업 흐름을 끊지 않고 빠르..
2025.07.14 -
(Tool) 유니티 커스텀윈도우 : InputFieldEditorWindow
유니티 프로젝트를 진행하다 보면 에디터 내에서 사용자로부터 간단한 텍스트 입력을 받아야 할 때가 종종 있습니다. 예를 들어, 새로운 스크립터블 오브젝트의 이름을 정하거나, 특정 설정 값을 입력하거나, 에셋을 생성할 때 파일명을 입력하는 등의 작업이죠. 이럴 때마다 매번 복잡한 UI를 구성하거나, 기본적인 EditorGUILayout.TextField로는 부족한 유효성 검사 로직을 추가하는 것이 번거로웠습니다. 그래서 이러한 반복적인 작업을 효율적으로 처리하고, 사용자에게 일관된 입력 경험을 제공하기 위해 InputFieldEditorWindow를 개발하게 되었습니다. 이 툴은 단순히 텍스트를 입력받는 것을 넘어, 입력 값에 대한 기본적인 유효성 검사까지 지원하여 개발 워크플로우를 크게 개선해줍니다. u..
2025.07.07 -
(Tool)유니티 CustomWindow 에서 커스텀 알림 오버레이 만들기
유니티 에디터를 사용하다 보면 에디터 창 내에서 사용자에게 간단한 알림을 보여줘야 할 때가 종종 있습니다. 유니티 자체적으로 EditorWindow.ShowNotification이라는 편리한 함수를 제공하고 있지만, 이 함수는 에디터 창의 중앙 상단에 고정된 형태로 나타나 커스터마이징에 한계가 있습니다. 저는 프로젝트에서 보다 유연하고 시각적으로 매력적인 알림 시스템이 필요했고, UnityEngine.UIElements를 활용하여 이를 직접 구현해 보았습니다. 왜 커스텀 알림이 필요한가요?EditorWindow.ShowNotification은 간단한 메시지를 표시하기에 충분합니다. 하지만 다음과 같은 상황에서는 부족함을 느낄 수 있습니다:위치 커스터마이징: 알림이 항상 창 중앙 상단에만 나타나 원하는 위..
2025.07.07 -
List 풀링 시스템을 활용해서 GC 줄이기
https://github.com/wolstar415/PooledListManagerProject 게임을 만들다 보면 자연스럽게 다음과 같은 코드가 생깁니다: 1.적 유닛 탐색2.공격 범위 안에 들어온 유닛 필터링3.이펙트나 디버프 타겟 선정 이런 로직에서는 매번 해당 유닛들을 담을 List를 생성하게 됩니다. 그런데 new List()를 할 때마다 리스트는 힙 메모리에 할당되고, 이게 반복되면 GC에 쌓이기 시작합니다. 물론 자주 사용하지 않는 경우라면, 이 정도의 GC는 큰 문제가 되지 않을 수 있습니다. 하지만 이 로직이 매 프레임 반복되거나, 자주 호출되는 흐름에 포함되어 있다면 결코 무시할 수 없는 수준으로 GC가 누적됩니다. 그렇다고 리스트를 재사용하려고 하면, 매번 클래스마다 변수를 따로 선..
2025.06.04