Communitygithub.com

unity-technologies/migrate-birp-to-urp

Unity 프로젝트의 Built-in Render Pipeline(BiRP)에서 Universal Render Pipeline(URP)으로의 마이그레이션을 계획, 실행 및 문제 해결합니다. 프로젝트, 씬, 머티리얼 또는 셰이더를 URP로 업그레이드, 변환, 전환 또는 마이그레이션하라는 요청이 있을 때 사용합니다.

migrate-birp-to-urp란 무엇인가요?

이 스킬은 Unity 프로젝트를 Built-in Render Pipeline(BiRP)에서 Universal Render Pipeline(URP)으로 마이그레이션하는 과정을 체계적으로 안내합니다. 개발자나 AI 에이전트가 'URP로 업그레이드', '머티리얼 변환', '핑크색 오류 수정' 같은 요청을 받았을 때, 단순히 변환을 실행하는 대신 프로젝트 상태를 검사하고 적절한 단계별 마이그레이션 경로를 선택하도록 설계되었습니다. 주로 Claude Code, Cursor, Codex와 같은 AI 코딩 에이전트에서 사용되며, SKILL.md에 정의된 단계별 프로토콜을 따릅니다: 먼저 프로젝트가 Built-in 상태인지, 부분 마이그레이션되었는지, 이미 URP인지 또는 HDRP인지 감지합니다. 그런 다음 요청을 표준 3D URP, URP 2D, 선택적 머티리얼 변환, 계획 전용, 또는 문제 해결로 분류합니다. 마이그레이션 위험(불투명 머티리얼, 파티클/VFX 머티리얼, 커스텀 셰이더, 포스트 프로세싱, 베이크된 조명/라이트맵, 리플렉션 프로브, Quality 레벨)을 검사하고, 롤백 안전성(브랜치, 백업 등)이 확인된 후에만 파이프라인 변경 작업을 진행합니다. 기본 단계는 Phase 0(검사 및 계획), Phase 1(URP 설정 및 지원 머티리얼 변환), Phase 2(포스트 프로세싱 및 카메라 마이그레이션), Phase 3(조명, 라이트맵 및 리플렉션 프로브), Phase 4(최종 검증 및 보고)로 구성됩니다. 중요한 점은 각 단계를 완료한 후 재질의하여 상태를 확인하고, 'Phase complete', 'Phase partial' 또는 'Blocked'로 보고하며, 긴 조명 베이크나 도메인 리로드 같은 중단이 발생하면 중간 상태를 저장하고 다음 턴에서 재개합니다. 또한 PPv2, 베이크된 조명, 파티클/안개 머티리얼 등 일반적인 Built-in 종속성을 사용자가 언급하지 않아도 자동으로 감지하고 처리합니다. 최종 성공을 선언하기 전에 프로젝트 저장 상태(Graphics 설정, URP 에셋 할당, 콘솔 오류, 머티리얼 셰이더 일관성, 포스트 프로세싱 지속성)를 직접 재질의하여 검증합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/unity-technologies/skills/tree/main/skills/migrate-birp-to-urp

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

요청을 분류하고, 현재 프로젝트 상태를 검사하며, 올바른 마이그레이션 경로를 선택하고, Built-in에서 URP로의 마이그레이션 결과를 신중하게 검증하세요.

필수 실행 참조

실제 마이그레이션 또는 수리 작업을 수행하기 전에 첫 번째 eval 호출 전에 references/implementation-patterns.md를 읽으십시오. 이는 프로젝트 설정, 머티리얼, 포스트 프로세싱, 조명, 프로브 또는 씬을 수정하는 모든 경우에 해당합니다. "이 프로젝트를 URP로 마이그레이션"과 같이 롤백 안전성이 이미 확인된 짧은 프롬프트에도 필수입니다.

해당 리소스를 로드할 수 없는 경우, 이 SKILL.md에 포함된 규칙을 사용하고 자신감 수준을 낮추십시오. 의도 또는 도구 로그만으로 PPv2 변환, 조명/프로브 새로고침 또는 마이그레이션 완료를 주장하지 마십시오.

중요 기본값

"이 Built-in 프로젝트를 URP로 마이그레이션" 또는 "이 프로젝트를 URP로 이동"과 같은 간단한 요청의 경우, 바로 변환으로 건너뛰지 말고 안전한 마이그레이션 워크플로우를 시작하거나 재개하십시오.

일반적인 업그레이드 프롬프트는 사용자가 모든 마이그레이션 위험을 언급하도록 요구해서는 안 됩니다. PPv2, 베이크된 조명/라이트맵, 리플렉션 프로브, 파티클/안개/연기 머티리얼, Quality 레벨, 카메라 포스트 프로세싱, 대표 씬 검증 등 일반적인 Built-in 종속성을 검사하고 처리하십시오.

기본 결과는 단계 기반입니다:

  1. 프로젝트가 Built-in 상태인지, 부분 마이그레이션되었는지, 이미 URP인지 또는 HDRP인지 감지합니다.
  2. 요청을 표준 3D URP, URP 2D, 선택적 머티리얼 변환, 계획 전용 또는 문제 해결로 분류합니다.
  3. 변경 사항을 권장하기 전에 마이그레이션 위험을 검사합니다: 불투명 머티리얼, 파티클/VFX 머티리얼, 커스텀 셰이더, 포스트 프로세싱, 카메라 효과, 베이크된 조명/라이트맵/리플렉션 프로브, Quality 레벨 및 대표 씬.
  4. 사용자가 브랜치, 백업, 아카이브 또는 폐기 가능한 복사본과 같은 롤백 지점을 확인할 때까지 파이프라인을 변경하는 작업을 중단합니다. 파이프라인 변경 작업에는 URP 설치, Graphics/Quality 설정에 URP 에셋 할당, 컨버터 실행, 머티리얼 또는 씬 편집이 포함됩니다.
  5. 다음 마이그레이션 단계를 선택하고, 해당 단계를 실행하며, 그 출력을 저장/재질의하고, 해당 단계의 상태를 보고합니다.
  6. 커스텀 셰이더, GrabPass, 서피스 셰이더, OnRenderImage, 교체 셰이더 및 패키지 소유 셰이더는 자동 컨버터 작업이 아닌 범위가 지정된 후속 작업으로 취급합니다.
  7. 전체 마이그레이션 성공을 선언하기 전에 대표 씬, 콘솔 출력, 카메라 렌더링, 조명/베이크된 GI 상태, 머티리얼, 포스트 프로세싱 지속성 및 Quality 레벨 할당을 검증하십시오.

기본 단계:

  • Phase 0: 검사 및 계획. 파이프라인 상태, 대표 씬, 롤백 안전성, PPv2, 머티리얼/셰이더 위험, Quality 레벨, 조명/라이트맵/프로브 상태 및 커스텀 렌더 코드를 감지합니다.
  • Phase 1: URP 설정 및 지원되는 머티리얼 변환. URP 설치/재사용, Graphics/Quality에 URP 에셋 생성/할당, 지원되는 불투명 및 파티클/효과 머티리얼을 변환하고, 지원되는 머티리얼이 Built-in 셰이더에 남아 있지 않은지 확인합니다.
  • Phase 2: 포스트 프로세싱 및 카메라 마이그레이션. 영구적인 URP Volume 프로필을 생성하고, 씬 Volume/카메라 포스트 프로세싱을 연결하며, URP 검증을 위해 레거시 PPv2를 비활성화하고, SSR과 같이 지원되지 않는 PPv2 효과를 분류합니다.
  • Phase 3: 조명, 라이트맵 및 리플렉션 프로브. 오래된 Built-in 조명 상태를 해결하고, URP 조명/프로브 설정을 구성하며, 가능한 경우 리베이크/새로고침하거나 조명/프로브를 부분 완료로 명확히 표시합니다.
  • Phase 4: 최종 검증 및 보고. 프로젝트 상태를 저장/리로드/재질의하고, 대표 씬을 캡처하며, 콘솔을 확인하고, 완료/미완료/수동 항목을 보고합니다.

프로젝트가 작고 Unity가 안정적으로 유지된다면 한 턴에 여러 단계를 완료할 수 있지만, 모든 단계를 하나의 응답에 강제로 포함시키지 마십시오. 과장된 "완료" 결과보다는 정직한 단계 경계를 선호하십시오.

프로젝트 상태나 사용자 의도에 실제 결정되지 않은 부분이 있을 때만 구성 질문을 하십시오. 사용자가 "파일을 수정하지 마십시오"라고 말하면 감사/계획 모드로 유지하고 변환이나 에셋 편집을 수행하지 마십시오.

일반 업그레이드 계약

사용자가 일반적인 마이그레이션 요청을 하고 변경을 허용하면, 프로젝트 상태에서 다음 단계를 진행하십시오:

  1. 검사 전에 사용자에게 알려진 Built-in 기능을 열거하도록 요청하지 마십시오. 직접 발견하십시오.
  2. PPv2, 베이크된 조명, 리플렉션 프로브, 파티클/안개/연기 머티리얼 또는 여러 Quality 레벨이 존재하는 경우, 자동으로 마이그레이션에 포함하십시오.
  3. 한 번에 모든 것을 완료하는 것보다 단계 완료를 선호하십시오. 각 단계는 자체 출력을 저장/재질의하고 Phase complete, Phase partial 또는 Blocked로 끝나야 합니다.
  4. Unity 컴파일, 패키지 설치, 도메인 리로드 또는 긴 조명 베이크가 작업을 중단시키면, 해당 중단을 단계 경계로 보고하고 다음 턴에서 저장된 부분 상태부터 재개하십시오. 처음부터 다시 시작하지 마십시오.
  5. 사용자가 올바른 동작을 얻기 위해 상세한 체크리스트 프롬프트를 작성해야 한다고 가정하지 마십시오. 상세 체크리스트는 벤치마킹 또는 스트레스 테스트용입니다. 일반 사용자 프롬프트에서도 이 단계별 계약이 실행되어야 합니다.
  6. 일반적인 마이그레이션 요청은 검사 및 계획에 대한 권한을 부여하지만, 롤백 안전성을 증명하지는 않습니다. 롤백 지점이 확인되지 않으면 패키지 설치 또는 URP 할당 전에 중단하고 확인을 요청하십시오. 백업 질문을 위해 프로젝트를 마젠타색 부분 상태로 두지 마십시오.
  7. 롤백 안전성이 이미 확인되었거나 사용자가 프로젝트가 폐기 가능한 복사본이라고 말하면, 일상적인 작업에 대해 다시 묻지 않고 현재 단계 내에서 계속하십시오.
  8. 단계가 끝나면 간결한 다음 단계 프롬프트를 제공하거나 어떤 단계가 다음에 실행되어야 하는지 말하십시오. 새로운 비용이 많이 들거나 위험한 작업(긴 조명 베이크, 레거시 에셋 삭제/정리, 커스텀 셰이더 재작성 등)이 도입될 때만 다음 단계 전에 확인을 요청하십시오.
  9. 롤백 안전성이 확인되었고 활성 단계 내에서 일반 작업이 완료되지 않은 경우, "계속할까요?"라고 묻지 마십시오. 해당 단계의 게이트가 통과되거나, 도구/도메인 리로드 경계가 실행을 중단시키거나, 진정으로 새로운 위험한 결정이 나타날 때까지 수리를 계속하십시오.

일반 마이그레이션 성공 게이트

일반 마이그레이션이 "성공적", "완료" 또는 "완전히 마이그레이션됨"이라고 말하기 전에, 도구 로그뿐만 아니라 저장된 프로젝트 상태를 검증하십시오:

  1. Graphics 설정과 모든 관련 Quality 레벨이 의도한 URP 에셋을 가리키고 있습니다.
  2. URP 에셋이 저장된 상태에 유효한 기본 렌더러를 가지고 있으며, 현재 콘솔 출력에 "Default Renderer is missing"과 같은 해결되지 않은 렌더 파이프라인 오류가 없습니다. 할당 후 렌더러 오류가 나타나면, 저장된 렌더러 목록/기본 인덱스를 재질의하고, 가능한 경우 오래된 콘솔 출력을 지우고, 신선한 씬/카메라 검증을 트리거하고, "URP 설정 완료"에서 멈추지 말고 수리를 계속하십시오.
  3. 지원되는 Built-in 머티리얼(파티클/안개/연기 머티리얼 포함)이 URP 호환 셰이더를 가지고 있거나 해결되지 않은 커스텀/패키지 셰이더 케이스로 명시적으로 나열되어 있습니다. 텍스처/색상이 있는 소스 머티리얼은 소스 맵/색상을 보존해야 합니다. _BaseMap이 누락되었거나 _BaseColor가 모두 흰색인 URP 셰이더 할당은 소스 _MainTex 또는 _Color에 내용이 있었다면 불완전합니다. 파티클, 안개, 연기, 스팀, 데칼, VFX, 가산, 투명 효과 머티리얼을 맹목적으로 Universal Render Pipeline/Lit으로 강제하지 마십시오. 적절한 경우 Universal Render Pipeline/Particles/Unlit과 같은 URP 파티클/효과 셰이더를 선호하십시오.
  4. 소스 씬이 PPv2를 사용했다면, 저장된 URP Volume 프로필이 존재하고, 지원되는 포스트 프로세싱 효과(예: 톤 매핑, 블룸, 비네트, 색수차)를 동등하게 유지하며, 잘못된 OnRenderImage 또는 레거시 PPv2 동작에 의존하지 않고 적절한 카메라 포스트 프로세싱을 연결합니다. 지원되지 않는 PPv2 효과(예: SSR)는 별도로 분류해야 합니다.
  5. 베이크된 조명 사용자 지정 레이어/태그가 보존되고, 정적 조명 설정이 유지되며, 리플렉션 프로브가 URP 렌더링과 일치합니다(적절한 타입/HDR).
  6. 저장된 상태를 로드하고 대표 씬을 다시 열었을 때(도메인 리로드 시뮬레이션), 파이프라인 설정이 유지되고, 제공된 씬에 마젠타/분홍색 머티리얼이 없으며, 콘솔에 오류가 없고, 카메라 미리보기가 중단되지 않습니다.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

unity-technologies/2d-pixel-perfect

Sets up, diagnoses, and fixes pixel perfect 2D rendering in Unity projects. Use when working on any retro-style or pixel art 2D game.

unity-technologies/audio-setup-mixers

Scans the scene and audio assets to appropriately route Audio Sources into existing Audio Mixer Groups, classifying each source by what it plays. Use when the user asks about cleaning up mixer assignments, routing audio through a mixer, or which group a sound belongs in. Creating mixers and groups, and setting volumes, are not automated — the skill inventories what exists and asks the user to add anything missing.

unity-technologies/build-live-game

Build and operate a live game using Unity Services. Use when the user needs to implement, connect, or debug backend-driven features — battle passes, achievements, player progression, cloud saves, leaderboards, matchmaking, virtual economies, server-authoritative logic, anti-cheat, player accounts and authentication, remote configuration, feature flags, A/B testing, analytics, or cloud resource deployment. Triggers on live-ops, live service, backend, server authority, cloud code, cloud save, remote config, player data, retention, monetization loop, season pass, ranking, multiplayer sessions, lobbies, or any Unity Services integration.

unity-technologies/generate-editor-search-query

Generates Unity Search / Quick Search queries and opens the Unity Search window for read-only Unity Editor asset or scene-object lookup requests. Always use when the user asks to find, search, show, locate, filter, look up, query, or list concrete assets or scene objects in the current project or scene, even if Unity Search is not named. Covers materials, textures, prefabs, scenes, scripts, shaders, GameObjects, components, Lights, Cameras, UI objects, labels, paths, references, selected or named assets, and asset types. Also use when the user explicitly mentions Unity Search, Quick Search, Search window, open Search, or asks what Unity Search query to use. Do not use for general project overview, project structure, folder-purpose summaries, gameplay/system explanations, how-to programming questions, web search, repository text search, build logs, package installation, menu or settings search, modifying results, or non-Unity filesystem search unless the user explicitly asks to use Unity Search.

unity-technologies/implement-in-app-purchases

Implement, configure, and debug Unity In-App Purchases (IAP) — store connection, product catalog, consumable/non-consumable/subscription purchases, two-step pending-confirm flow, receipt validation, entitlement checking, restore transactions, Apple extensions (promotional purchases, Ask-to-Buy, code redemption), and Google Play extensions (subscription upgrade/downgrade), D2C Capabilities(direct to customer), 3rd party payment provider (Stripe/Coda) via Unity IAP/Unity Cloud. Use when the user needs to add, modify, debug, or migrate from native Android/iOS billing, 3rd party packages(RevenueCat/Adapty/Essential Kit/Unipay supported) to IAP. Triggers on microtransactions (MTX), monetization, real-money purchases, store purchases, buying items, support D2C, purchase via Stripe/Coda, migrate from native billing(Google's BillingClient or Apple's StoreKit/SKPaymentQueue/SKProduct)/RevenueCat/Adapty/EssentialKit/Unipay.

unity-technologies/initialize-ai-navigation

Sets up and configures the Unity AI Navigation system — NavMesh surfaces, NavMesh agents, obstacles, links, modifiers, areas and costs. Use when creating walkable navigation meshes, adding pathfinding agents, setting up patrol routes, configuring obstacle avoidance and carving, connecting separate NavMeshes with links, coupling navigation with animation, or troubleshooting navigation issues.

unity-technologies/levelplay-unity-integration

Integrates the LevelPlay Mediation SDK via the Ads Mediation UPM package. Use when a developer asks about adding ads to a Unity game, implementing rewarded, interstitial, or banner ads, setting up ad mediation, configuring ad networks, installing or updating the Ads Mediation package, troubleshooting LevelPlay namespace errors, resolving Android gradle or iOS CocoaPods dependency issues for ads, configuring ATT or privacy settings for ad compliance, tracking impression-level revenue (ILRD), initializing the LevelPlay SDK, or setting up ad unit IDs. Also use when a developer wants to monetize their Unity game with ads, asks how to get started with LevelPlay, ads, or mediation, or needs help with any part of the LevelPlay integration workflow including platform-specific setup for iOS or Android. Also use when upgrading the LevelPlay or IronSource SDK version, migrating from deprecated IronSource.Agent APIs, or migrating a game from Unity Ads to LevelPlay.

unity-technologies/localization

Sets up and configures Unity Localization, including locales, String/Asset Tables, CJK font support, and Addressables workflows. Use when the user wants to add languages to a project, translate UI text, support Asian (CJK) languages with TMP fonts, or mentions i18n, l10n, multilingual support, or making a game support multiple languages.

unity-technologies/manage-sprite-atlas

Manage SpriteAtlas using prebuild pipeline with IPreprocessBuildWithReport (DEFAULT approach). Use it to configure master atlases, variant atlases, texture settings, packing settings, and platform-specific configurations. Use when the user asks about creating sprite atlases, optimizing sprites, configuring atlas settings, adding sprites to atlases, creating variant atlases, implementing automated atlas generation, or runtime sprite atlas access. Always use prebuild approach unless user explicitly requests manual authoring.

관련 스킬