PROGRAMING📚/🔖Unity3D
Unity 참조 검색 툴 AssetUsageDetector 사용법 (씬, 머티리얼, 프리팹 추적)
__윤하루__
2025. 6. 25. 17:37
https://assetstore.unity.com/packages/tools/utilities/asset-usage-detector-112837
Asset Usage Detector | 유틸리티 도구 | Unity Asset Store
Use the Asset Usage Detector from yasirkula on your next project. Find this utility tool & more on the Unity Asset Store.
assetstore.unity.com
🔍 핵심 기능 요약: Search Refactoring
✅ 무엇을 할 수 있나?
- 특정 에셋(Object)의 사용처를 찾고
- 그 참조들을 자동으로 다른 에셋으로 치환(Refactor) 할 수 있음
- 예: 특정 Font를 프로젝트 전반에서 새 Font로 일괄 교체
⚙️ 사용 방법 요약
1. 스크립트 위치 조건
- Editor 폴더에 두거나
- Assembly Definition File을 사용하는 경우 AssetUsageDetector.Editor를 참조에 추가
2. 검색 시작하기
- 다음 중 하나 사용:
- new AssetUsageDetector().Run(...)
- AssetUsageDetectorWindow.ShowAndSearch(...)
3. 리팩토링 처리 콜백 작성
- searchRefactoring 콜백을 통해 참조를 찾아 수정
void ReplaceFontUsages(Font from, Font to)
{
AssetUsageDetector detector = new AssetUsageDetector();
detector.Run(new AssetUsageDetector.Parameters()
{
objectsToSearch = new Object[] { from },
lazySceneSearch = false, // 성능보단 정확도를 원할 때 false
searchRefactoring = (searchMatch) =>
{
Debug.LogFormat("Found a {0} reference from {1} to {2}", searchMatch.GetType().Name, searchMatch.Source, searchMatch.Value);
searchMatch.ChangeValue(to); // 실제로 참조 변경
}
});
}
⚠️ 주의사항 및 팁
- 💾 백업 필수: 자동 변경이므로 작업 전 프로젝트 백업 권장
- 🔄 검색 결과는 변경되지 않음: 리팩토링 후에도 검색 결과에는 이전 참조가 계속 표시됨. 저장 후 다시 검색해야 최신 결과 확인 가능
- 🔎 2차 확인 추천: 모든 참조가 정상적으로 리팩토링되었는지 일반 검색으로 다시 확인하는 것이 좋음
- ⛔ 제한사항: Shader Graph, Assembly Definition 같은 특수 참조는 아직 지원되지 않음
🧠 언제 유용한가?
사용 사례 설명
프로젝트 전체에서 특정 Font 또는 Material 교체 | ReplaceFontUsages, ReplaceMaterialUsages 등으로 활용 |
비활성화된 스프라이트 일괄 제거 | searchRefactoring 내에서 null로 치환 가능 |
잘못된 사운드 클립 참조 제거 | AudioClip 참조 일괄 null 변경 |
🧭 Asset Usage Detector 사용법 (GUI 기반)
🔓 1. 에디터 창 열기
- 메뉴 경로:
- Window > Asset Usage Detector
- 또는 단축 명령:
- 프로젝트 뷰에서 원하는 에셋 우클릭 →
"Search For References" 선택
- 프로젝트 뷰에서 원하는 에셋 우클릭 →
⚙️ 2. 설정 후 검색 실행
- 에디터 창에서 다음 항목을 설정할 수 있습니다:
- 검색 대상(Object)
- 검색 범위(Assets/Scenes/ScriptableObjects 등)
- Lazy Scene Search 여부 (비활성화 시 더 정확함)
- 결과 필터링 옵션
- 설정을 마친 후 "GO!" 버튼 클릭 → 참조 검색 시작
🔍 SEARCH IN 옵션 설명
옵션 설명
✅ Project window (Assets folder) | Assets 폴더 내의 에셋 전체를 검색 대상으로 포함합니다. |
⬜ Search following asset(s) only | 특정 에셋만 검색 대상으로 제한하려는 경우 여기에 등록합니다. (예: 특정 Material, Prefab 등만 검색하고 싶을 때) |
⬜ Don't search following asset(s) | 검색 대상에서 제외하고 싶은 에셋을 지정합니다. |
✅ Don't search “SEARCHED OBJECTS” themselves for references | 검색하려는 오브젝트 자체의 참조는 제외하고, 다른 곳에서 이 오브젝트를 사용하는 경우만 검색합니다. |
✅ Search unused material properties | Material의 사용되지 않는 프로퍼티(e.g. 더 이상 normal map을 쓰지 않는 경우 등)도 검색에 포함됩니다. |
⬜ Currently open (loaded) scene(s) | 열려 있는 씬만 검색 대상으로 포함 (현재는 비활성화됨) |
✅ Scenes in Build Settings → Ticked only | Build Settings에 체크된 씬만 검색합니다. "All"을 체크하면 모든 빌드 씬이 대상이 됩니다. |
✅ All scenes in the project | 프로젝트 내 모든 씬을 검색 대상에 포함합니다. |
⬜ Don't search in following scene(s) | 특정 씬을 검색 대상에서 제외하고 싶을 때 여기에 등록합니다. |
✅ Scene Lighting Settings | 씬의 Lighting 설정도 참조 대상으로 포함함 (주의: 검색 중 씬이 로드될 수 있음) |
✅ Project Settings | Player Settings, Graphics Settings 등의 에디터 설정 파일도 참조 검색에 포함합니다. |
🧠 활용 팁
- 빠른 검색이 필요할 때:
- All scenes in the project 체크 해제
- Ticked only + 특정 에셋 지정
- 정확한 결과가 필요할 때:
- lazySceneSearch 비활성화 (스크립트에서), 그리고 위 설정을 최대한 켜둔 상태 유지
- 특정 타입만 보고 싶을 때:
- 검색 대상에 Material, Font, Sprite 등만 넣기
📄 3. 검색 결과 해석
- 검색 결과는: 어떤 오브젝트가 어떤 에셋/스크립트/씬에서 어떤 방식으로 참조되고 있는지 를 보여줍니다.
- 결과를 클릭하면 관련 에셋이 자동으로 하이라이트/선택됨
🎨 4. UI 및 동작 커스터마이징
- Unity 메뉴:
- Edit > Project Settings > yasirkula > Asset Usage Detector
- 설정 가능한 항목:
- 색상(검색 결과 하이라이트 등)
- 레이아웃/동작 설정
- 고급 필터
구버전에서는 Edit > Preferences > Asset Usage Detector 경로에 위치해 있습니다.
📝 유용한 팁
상황 조치
검색이 너무 느릴 때 | Lazy Scene Search 활성화 (정확도 ↓, 속도 ↑) |
검색 정확도가 낮을 때 | Lazy Scene Search 비활성화 |
검색 결과를 저장하고 싶을 때 | JSON 또는 텍스트로 복사 가능 |
특정 타입만 보고 싶을 때 | 필터로 Material, Font, Texture 등 제한 가능 |