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 SettingsTicked 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 등 제한 가능