分類請求,檢查當前專案狀態,選擇正確的遷移路徑,並仔細驗證 Built-in 到 URP 的遷移結果。
強制執行參考
在進行任何實際的遷移或修復作業之前,請先閱讀 references/implementation-patterns.md 再進行第一個會編輯專案設定、材質、後製處理、燈光、探針或場景的 eval 呼叫。即使是在已確認回滾安全性的情況下,對於像是「將此專案遷移到 URP」這類簡短提示,也必須強制執行此步驟。
如果無法載入該資源,請使用此 SKILL.md 中的內嵌規則,並降低你的信心水準:不要僅根據意圖或工具日誌就聲稱已完成 PPv2 轉換、燈光/探針更新或遷移完成。
關鍵預設行為
對於像是「將此 Built-in 專案遷移到 URP」或「將此專案移至 URP」的簡單請求,請啟動或恢復安全的遷移工作流程,而不是直接跳到轉換步驟。
一個通用的升級提示不應要求使用者提及每一個遷移風險。請檢查並處理常見的 Built-in 相依項目,例如 PPv2、烘焙燈光/光照貼圖、反射探針、粒子/霧氣/煙霧材質、品質設定、相機後製處理,以及具代表性的場景驗證。
預設結果基於以下階段:
- 偵測專案是 Built-in、部分遷移、已為 URP 還是 HDRP。
- 將請求分類為標準 3D URP、URP 2D、選擇性材質轉換、純規劃或疑難排解。
- 在建議修改前檢查遷移風險:不透明材質、粒子/VFX 材質、自訂著色器、後製處理、相機特效、烘焙燈光/光照貼圖/反射探針、品質設定,以及具代表性的場景。
- 在使用者確認回滾點(例如分支、備份、存檔或可丟棄的副本)之前,停止所有會改變管線的工作。改變管線的工作包括安裝 URP、在圖形/品質設定中指定 URP 資源、執行轉換器,以及編輯材質或場景。
- 選擇下一個遷移階段、執行該階段、儲存/重新查詢其輸出,並報告其階段狀態。
- 將自訂著色器、
GrabPass、表面著色器 (Surface Shader)、OnRenderImage、替換著色器 (replacement shader) 以及套件擁有的著色器視為有範圍的後續工作,而非自動轉換器的工作。 - 在宣告完整遷移成功之前,驗證代表性的場景、控制台輸出、相機渲染、燈光/烘焙全域照明 (GI) 狀態、材質、後製處理的持續性,以及品質設定指派。
預設階段:
- 階段 0:檢查與規劃。偵測管線狀態、代表性場景、回滾安全性、PPv2、材質/著色器風險、品質設定、燈光/光照貼圖/探針狀態,以及自訂渲染程式碼。
- 階段 1:URP 設定與支援的材質轉換。安裝/重複使用 URP、在圖形/品質設定中建立/指派 URP 資源、轉換支援的不透明與粒子/效果材質,並確認沒有支援的材質仍使用 Built-in 著色器。
- 階段 2:後製處理與相機遷移。建立持久的 URP Volume 設定檔、連接場景 Volume / 相機後製處理、為 URP 驗證停用舊版 PPv2,並分類不支援的 PPv2 效果,例如 SSR。
- 階段 3:燈光、光照貼圖與反射探針。解決過時的 Built-in 燈光狀態、設定 URP 燈光/探針設定、在可行時重新烘焙/更新,或明確標記燈光/探針為部分完成。
- 階段 4:最終驗證與報告。儲存/重新載入/重新查詢專案狀態、擷取代表性場景、檢查控制台,並報告完整/不完整/需要手動處理的項目。
如果專案很小且 Unity 維持穩定,一個互動回合可能完成多個階段,但不要強求在一個回覆中完成所有階段。寧願誠實地標記階段邊界,也不要過度聲稱「完成」。
僅在專案狀態或使用者意圖確實存在未解決的決定時,才詢問設定問題。如果使用者說「不要修改檔案」,則停留在審計/規劃模式,不要執行轉換或資源編輯。
通用升級合約
當使用者提出通用的遷移請求並允許修改時,請根據專案狀態驅動下一個階段:
- 在檢查之前,不要要求使用者列舉已知的 Built-in 功能。請自行發現它們。
- 如果存在 PPv2、烘焙燈光、反射探針、粒子/霧氣/煙霧材質或多個品質設定,請自動將它們納入遷移範圍。
- 優先完成階段,而不是一次性全部完成。每個階段應儲存/重新查詢其自身的輸出,並以「Phase complete」、「Phase partial」或「Blocked」結束。
- 如果 Unity 編譯、套件安裝、領域重新載入或長時間的燈光烘焙中斷了操作,請將此中斷報告為一個階段邊界,並在下一個回合從已儲存的局部狀態繼續,而不是重新開始。
- 不要依賴使用者撰寫詳細的檢查清單提示來獲得正確的行為。詳細的檢查清單是為了基準測試或壓力測試;正常的使用者提示仍應觸發此階段性合約。
- 一個通用的遷移請求允許檢查和規劃,但它並不證明回滾安全性。如果沒有確認回滾點,請在套件安裝或 URP 指派之前停止,並要求確認。不要為了達到備份問題而讓專案處於洋紅色的部分狀態。
- 如果回滾安全性已確認,或者使用者說該專案是可丟棄的副本,則在當前階段內繼續進行,無需再為例行工作請求許可。
- 在階段結束時,提供一個簡潔的下一個階段提示,或說明接下來應該執行哪個階段。僅在引入新的昂貴或高風險操作時,才在執行下一個階段前請求使用者確認,例如長時間的燈光烘焙、刪除/清理舊版資源,或重寫自訂著色器。
- 如果回滾安全性已確認,且活躍階段內的例行工作仍未完成,則不要問「你想讓我繼續嗎?」。繼續修復該階段,直到其閘門通過、工具/領域重新載入邊界中斷執行,或出現一個真正新的高風險決策。
通用遷移成功閘門
在說一個通用遷移是「成功」、「完成」或「完全遷移」之前,請驗證已儲存的專案狀態,而不僅僅是工具日誌:
- 圖形設定和每個相關的品質設定都指向預期的 URP 資源。
- URP 資源在已儲存的狀態中有一個有效的預設渲染器,且當前控制台輸出中沒有未解決的渲染管線錯誤,例如「Default Renderer is missing」。如果在指派後出現渲染器錯誤,請重新查詢已儲存的渲染器清單/預設索引,盡可能清除過時的控制台輸出,觸發新的場景/相機驗證,並繼續修復,而不是在「URP 設定完成」時就停止。
- 支援的 Built-in 材質,包括粒子/霧氣/煙霧材質,具有 URP 相容的著色器,或者被明確列為未解決的自訂/套件著色器案例。帶有紋理/顏色的來源材質必須保留其來源貼圖/顏色;如果來源
_MainTex或_Color含有內容,那麼一個缺少_BaseMap或_BaseColor全白的 URP 著色器指派就是不完整的。粒子、霧氣、煙霧、蒸氣、貼花、VFX、疊加、透明效果材質不應被盲目地強制轉換為Universal Render Pipeline/Lit;在適當情況下,應優先使用 URP 粒子/效果著色器,例如Universal Render Pipeline/Particles/Unlit。 - 如果來源場景使用了 PPv2,則已儲存的 URP