unity6 6

Unity 에디터 도구 설정이 재컴파일마다 초기화될 때, ScriptableSingleton 저장 위치부터 확인하세요

서론빌드 경로, 개발 빌드 여부, 마지막으로 선택한 플랫폼처럼 에디터 도구가 기억해야 할 값이 있다. 이를 EditorWindow 필드나 static 변수에만 넣으면 스크립트 재컴파일과 에디터 재시작 뒤에 값이 사라진다.EditorPrefs로 옮기면 저장은 되지만 프로젝트별 설정과 사용자 개인 설정이 섞이기 쉽다. Unity의 ScriptableSingleton을 사용하면 에디터 전용 상태를 직렬화하고, 저장 위치까지 명시적으로 결정할 수 있다.1. static 필드가 해결책이 아닌 이유static은 접근하기 편하지만 영속 저장소가 아니다. Domain Reload가 발생하면 초기화되며, Reload Domain을 꺼도 에디터 재시작까지 버티지는 못한다.Unity 공식 문서에 따르면 ScriptableS..

Unity 6 Awaitable 실전: 코루틴 없이 프레임 대기와 백그라운드 연산 처리하기

Unity에서 시간차 연출이나 비동기 로딩을 구현할 때 가장 먼저 떠오르는 도구는 코루틴이다. 하지만 작업이 여러 단계로 이어지면 yield return이 중첩되고, 반환값과 예외를 다루기도 불편해진다.Unity의 Awaitable은 이런 흐름을 C#의 async와 await 문법으로 표현한다. 다음 프레임, 물리 프레임, 지정 시간뿐 아니라 메인 스레드와 백그라운드 스레드 전환도 명시할 수 있다. 특히 로딩 화면, 절차적 데이터 생성, 복잡한 UI 연출처럼 순서가 중요한 코드에서 효과가 크다.코루틴을 프레임 단위 Awaitable로 바꾸기다음 코드는 오브젝트가 파괴되거나 플레이 모드가 종료될 때 자동으로 중단되는 페이드 처리다.using System.Threading;using UnityEngine;p..

2026 GPU 드리븐 렌더링 트렌드, Unity 6 GPU Resident Drawer와 RenderMeshIndirect로 드로우콜 만 단위 줄이기

2026년 GDC와 Unite를 관통한 키워드를 하나만 꼽으라면 단연 GPU 드리븐 렌더링(GPU driven rendering) 이다. CPU가 오브젝트를 하나씩 순회하며 컬링하고 드로우콜을 쏘던 전통적인 방식은, 오픈월드의 풀 수십만 포기나 군중 수천 명 앞에서 금방 무너진다. 정작 GPU는 놀고 있는데 렌더 스레드가 병목인 상황이 너무 흔해졌다.해결의 방향은 분명하다. "무엇을 그릴지" 정하는 일까지 GPU로 넘기는 것이다. 컬링도 GPU에서, 드로우 인자 생성도 GPU에서. CPU는 "이 메시 이만큼 그려" 명령 하나만 던지고 빠진다. 이번 세대 엔진들이 약속이라도 한 듯 같은 길로 움직이는 이유다. Unreal은 Nanite를 포함해 이미 GPU 드리븐이 기본이고, Unity도 6에서 같은 무기..

AI 에이전트로 ScriptedImporter 만들기: 외부 포맷을 Unity 에셋으로 자동 변환하기

레벨 에디터, 도트 툴, 밸런스 스프레드시트. 게임 하나를 만들다 보면 Unity 밖에서 데이터를 뱉어내는 외부 도구가 점점 늘어난다. 문제는 이 도구들이 내놓는 json, tmx, 커스텀 바이너리 파일을 Unity가 곧바로 쓸 수 있는 형태로 들고 있지 않다는 것이다. 매번 에디터 메뉴를 눌러 변환 스크립트를 돌리거나, 누군가 원본 파일을 고칠 때마다 손으로 재변환하는 식이면 금세 사고가 난다. "그 레벨 데이터 최신 버전 맞아?"라는 질문이 나오는 순간 이미 늦었다.이 문제를 가장 깔끔하게 푸는 Unity 기능이 ScriptedImporter다. 특정 확장자를 가진 파일을 프로젝트에 넣는 순간, Unity가 알아서 그 파일을 네이티브 에셋(ScriptableObject, Mesh, Texture 등)..

Unity 6 URP Render Graph로 커스텀 패스 마이그레이션하기: Compatibility Mode 졸업

Unity 6와 URP 17로 올라오면서 가장 크게 달라진 건 렌더 파이프라인을 커스터마이징하는 방식이다. 그동안 ScriptableRenderPass의 Execute()를 오버라이드하고 CommandBuffer로 직접 Blit을 호출하던 코드는 이제 "Compatibility Mode"로 분류되어 콘솔에 경고를 띄운다. URP Global Settings에서 Render Graph를 끄면 당장은 돌아가지만, 이 호환 모드는 단계적으로 제거될 예정이라 새 프로젝트라면 지금 옮겨두는 게 이득이다.Render Graph가 기본이 된 이유는 단순한 API 정리가 아니다. 패스 사이의 리소스 의존성을 그래프로 분석해서 안 쓰는 패스를 자동으로 컬링하고, 임시 텍스처 메모리를 재사용하고, 가능한 구간은 async..

Unity 씬 뷰에서 직접 편집하기, Handles API와 OnSceneGUI로 웨이포인트 비주얼 에디터 만들기

순찰 경로, 카메라 이동 라인, 트리거 영역 같은 데이터를 인스펙터에서 Vector3 배열 숫자로 입력해 본 사람은 안다. X, Y, Z 값을 손으로 치고, 씬 뷰로 시선을 옮겨 위치를 확인하고, 다시 인스펙터로 돌아와 숫자를 고친다. 점이 다섯 개만 넘어가도 이 왕복은 고통스럽다. 머릿속에는 "그냥 씬에서 마우스로 끌면 안 되나?"라는 생각이 떠오른다.된다. 유니티 에디터에는 씬 뷰 위에 조작 가능한 손잡이(핸들)를 그리는 Handles API가 있고, 컴포넌트마다 씬 뷰 그리기 로직을 끼워 넣는 OnSceneGUI 콜백이 있다. 이 둘을 합치면 인스펙터 숫자 입력을 마우스 드래그로 바꾸는 인-씬(in-scene) 에디터를 만들 수 있다. 데이터는 그대로 두고, 편집 경험만 바꾸는 것이다.이 글에서는 ..