Unity 매뉴얼: 검색 표현식 사용하기
이 문서는 Unity의 검색 표현식에 대해 설명합니다. 검색 표현식을 사용하면 Unity 프로젝트 내에서 복잡한 검색 쿼리를 생성하고 결과를 조작할 수 있습니다. 이 기능은 대규모 프로젝트에서 특정 에셋이나 속성을 찾는 데 유용합니다.
검색 표현식 기본 개념
검색 표현식이란?
검색 표현식은 Unity의 에셋과 객체를 검색하기 위한 쿼리 언어입니다. 기본적으로 특정 타입의 객체(예: 셰이더, 프리팹 등)를 검색할 수 있습니다.
기본 구조
검색 표현식은 root 표현식으로 시작하며, 내부에 여러 표현식을 포함할 수 있습니다. 예를 들어, t:shader는 모든 셰이더를 찾는 기본 쿼리입니다.
검색 표현식의 구성 요소
| 구성 요소 | 설명 |
|---|---|
| 쿼리 | 특정 타입의 객체를 찾기 위한 조건 |
| 함수 | 검색 세트를 조작하는 데 사용됩니다. |
| 리터럴 | 쿼리 문자열이 아닌 실제 단어 또는 숫자 |
| 프로퍼티 선택자 | 객체의 특정 속성에 접근하여 결과를 계산하는데 사용합니다. |
쿼리 예시
t:shader: 모든 셰이더를 검색t:prefab ref={t:texture}: 특정 텍스처를 참조하는 모든 프리팹을 찾기
함수 예시
count{t:shader}: 프로젝트에 있는 셰이더의 수를 반환합니다.sort{t:texture, @size}: 텍스처를 크기별로 정렬합니다.
고급 검색 표현식
중첩 표현식
검색 표현식을 중첩하여 더 복잡한 쿼리를 작성할 수 있습니다.
| 예시 | 설명 |
|---|---|
t:prefab ref={t:texture size>4000} |
4000바이트보다 큰 텍스처를 참조하는 프리팹 찾기 |
t:[shader, material, texture] |
타입이 셰이더, 머티리얼, 텍스처인 모든 객체 찾기 |
사용자 정의 함수와 확장
Unity는 사용자 정의 함수를 추가하여 검색을 더 효율적으로 만들 수 있습니다. 예를 들어, alias 함수를 사용하여 더 가독성 높은 결과를 얻을 수 있습니다.
| 예시 | 설명 |
|---|---|
alias{[1, 2, 3], 'Title value'} |
제목 레이블이 있는 항목 생성 |
활용 및 응용 예제
1. 씬 내의 프리팹 사용량 계산
프리팹 사용량을 계산하고 해당 사용량을 높은 순서로 정렬하는 검색 표현식:
sort{select{p: t:prefab *.prefab, @path, count{t:scene ref:@path} as count}, @count, desc}
2. 모든 에셋 유형 정렬 및 계산
프로젝트의 모든 에셋 유형을 정렬하고 그 수를 계산하는 예시:
sort{count{...groupby{a:assets, @type}}, @value, desc}
3. 최고 버텍스를 가진 메시 찾기
메시의 버텍스 수에 따라 정렬하여 최고 버텍스를 가진 메시를 찾기:
first{sort{t:mesh, @vertices, desc}}
결론
Unity의 검색 표현식은 복잡한 검색 쿼리를 통해 프로젝트의 에셋을 효율적으로 관리할 수 있게 해줍니다. 기본적인 쿼리 작성부터 고급 기능까지 익혀보면 프로젝트 작업이 크게 간소화될 것입니다.