자연어로 된 Unity Editor 검색 요청을 유용한 Unity Search 쿼리로 변환하고, 간략히 설명하며, 적절할 때 Unity Search 창을 엽니다.
기본 동작
프롬프트에 'Unity Search', 'Quick Search', 'Search window', 'open Search'가 명시적으로 언급되거나 Unity Search 쿼리를 요청하는 경우, 대상이 조명, UI, 물리, 오디오, 애니메이션 등 다른 도메인에 속하더라도 이 스킬로 검색 요청을 처리합니다.
'찾기', '검색', '위치', '목록', '필터', '조회', '어디에', '어떤 에셋이 사용하는', '무엇을 참조하는' 등 구체적인 Unity 에셋이나 씬 객체에 대한 요청:
- 요청이 주로 프로젝트 에셋, 씬 객체, 또는 둘 다에 관한 것인지 판단합니다.
- 간결한 Unity Search 쿼리 하나를 작성합니다.
- 응답에 쿼리를 표시한 후(또는 표시하면서) Search 창을 엽니다.
- 사용자가 명시적으로 쿼리 텍스트만 요청하지 않는 한 Editor 측 스니펫을 실행하여 Unity Search를 엽니다.
- Search 열기에 실패하면 쿼리를 반환하고 사용자에게 수동으로 Unity Search에 붙여넣도록 알립니다.
사용자가 'Search 열지 마세요', '쿼리만', '어떤 쿼리를 써야 하나요', '그냥 쿼리만 주세요' 등과 같이 말하면 Search를 열지 마십시오.
사용자가 일반 설명, 프로젝트 개요, 폴더 구조 요약, 아키텍처 워크스루, 게임플레이 시스템 요약, 또는 '어떻게 하는지' 프로그래밍 답변을 요청하는 경우, 프롬프트에 명시적으로 Unity Search, Search 쿼리, 또는 Search 창 열기가 언급되지 않으면 이 스킬을 사용하지 마십시오.
사용자가 에셋, 씬 객체, 보이는 이름 또는 경로 없이 '이것', '선택된', '현재'를 언급하면, 임의로 이름을 만들지 말고 이름/경로를 물어보십시오.
범위
읽기 전용 Unity Search / Quick Search 쿼리를 다음으로 제한합니다:
- 프로젝트 에셋: materials, textures, prefabs, scenes, scripts, shaders, audio clips, sprites, meshes, models, animations, fonts, render textures, ScriptableObject 에셋
- 씬 객체 및 컴포넌트: Cameras, Lights, Rigidbodies, Colliders, Renderers, Canvas objects, UI components, ParticleSystems, AudioSources, Animators, Terrain objects, 이름이 있는 GameObjects
- 경로, 레이블, 타입, 파일명, 키워드 및 참조 기반 에셋 검색
- 대화나 첨부 파일에서 이름/경로를 알 수 있는 선택된 또는 이름이 있는 에셋
패키지를 설치하거나, 메뉴 명령을 실행하거나, 에셋을 편집하거나, 씬을 수정하거나, 외부 문서를 검색하거나, 저장소 텍스트를 검색하거나, 빌드 로그를 검사하거나, 결과를 삭제하거나, 검색 결과를 수정하거나, 종속성 그래프 분석을 수행하지 마십시오. 사용자가 결과에 대해 작업을 요청하면 먼저 Search를 열거나 쿼리를 제공한 다음, 별도의 수정 스킬이나 워크플로를 시작하기 전에 확인을 요청하십시오.
참고 자료
중요하지 않은 쿼리를 생성하기 전에 references/query-patterns.md를 읽으십시오.
Search 창을 열기 전에 references/open-search-window.md를 읽으십시오.
공식 영어 참고 자료:
eval에 C# 전달하기
eval은 파일이 아닌 명령문 블록을 컴파일합니다. 다음 두 가지 결과는 컴파일 오류입니다:
using지시문 없음. 컴파일러는using UnityEditor;를 리소스 폐기 문으로 읽고 거부합니다(CS0210).- 타입은 완전히 정규화되어야 합니다. 완전하지 않은
SearchService는 확인되지 않으며(CS0246), 완전하지 않은Object는object와 모호합니다(CS0104).
unity-cli 스킬이 전제 조건(CLI 설치, 연결된 Editor 확인, 프로젝트의 com.unity.pipeline 패키지 추가, 명령 카탈로그 발견)을 소유합니다. 특히 eval이 필요합니다. 없으면 쿼리 텍스트를 생성하고 창을 열 수 없다고 말하십시오.
쿼리 생성 규칙
요청된 결과를 생성할 가능성이 가장 높은 가장 간단한 쿼리를 사용하십시오.
- 에셋 및 컴포넌트 요청에는 타입 필터를 선호합니다(예:
t:material,t:texture,t:prefab,t:scene,t:script,t:shader,t:Light,t:Rigidbody). - 사용자가 제공한 이름과 키워드는 따옴표가 필요하지 않는 한 일반 쿼리 용어로 유지합니다.
- 사용자가 폴더를 제공하거나 'Assets/... 안에', '... 아래에'라고 말할 때
dir:을 사용합니다. - 사용자가 Unity 에셋 레이블을 요청할 때
l:을 사용합니다. - 사용자가 어떤 에셋이 무엇을 참조하는지, 사용하는지, 의존하는지, 포함하는지 또는 연결되어 있는지 물을 때
ref=를 사용합니다. t:prefab ref={t:texture}또는t:scene ref={t:prefab}와 같이 검색 표현식이 쿼리를 명확히 개선할 때만 사용합니다.- 선택/현재라는 표현의 경우, 채팅 컨텍스트에 알려진 선택된 에셋 이름이나 경로가 있는 경우에만 사용합니다. 그렇지 않으면 물어보십시오.
- 'Rigidbody가 어디에 사용되었는가'와 같은 광범위한 관계 요청의 경우, 먼저 간단한 키워드 또는 컴포넌트 쿼리를 사용하고, 사용자가 철저한 코드/프로퍼티 분석을 필요로 하는 경우 스크립트 기반 감사는 별도라는 점을 언급합니다.
- 수정 작업과 검색이 혼합된 요청의 경우, 먼저 쿼리를 생성하고 열십시오. 사용자가 명시적으로 별도의 후속 작업을 확인하지 않는 한 결과를 수정하지 마십시오.
- 불확실한 요청에 대해 지원되지 않는 필터를 임의로 만들지 마십시오. Unity Search 구문으로 요청을 신뢰성 있게 표현할 수 없는 경우, 가장 가까운 안전한 쿼리를 열고 한계를 명시하십시오.
Unity Search 열기
Search 창을 열기 위해서만 Editor에서 C#을 실행하십시오. 이는 Editor UI 작업이며 프로젝트 에셋이나 씬 내용을 변경해서는 안 됩니다.
Search를 열 때:
- 생성된 C# 문자열에서 쿼리를 안전하게 이스케이프합니다.
- 이 v1 스킬에서는 에셋 및 씬 제공자를 선호합니다.
- 제공자를 사용할 수 없는 경우 활성 제공자로 대체합니다.
- 열린 쿼리를 로그에 기록합니다.
- 명령이 실패한 경우 Search가 열렸다고 말하지 마십시오.
응답 형식
사용자 대면 응답을 짧게 유지합니다:
Query: `t:material`
Opened Unity Search with that query.
Search를 열지 않는 경우:
Query: `t:prefab ref={t:texture}`
Paste this into Unity Search.
요청이 모호하지만 여전히 검색 가능한 경우, 가장 가능성 있는 쿼리를 선택하고 가정을 언급하십시오. 검색 대상이 '그것 찾기'와 같이 에셋, 씬, 타입, 이름 또는 컨텍스트 없이 추론할 수 없는 경우에만 질문하십시오.
유효성 검사 체크리스트
성공을 보고하기 전에:
- 생성된 쿼리가 사용자에게 표시되었는지
- 쿼리가 에셋, 씬 객체 또는 둘 다를 대상으로 하는지
- 사용자가 거부하지 않은 경우에만 Search가 열렸는지
- 모든 대체 또는 불확실성이 명확히 명시되었는지
- 에셋, 씬, 패키지, 프로젝트 설정 또는 검색 결과가 수정되지 않았는지