# Unity 的 Library 資料夾可以刪除嗎

> 用 MangoDisk 比較 Unity 舊專案的 Library 占用，依路徑清理快取，保留資源、設定與記憶體快照，並了解重新匯入的影響。

**可以，但要先儲存工作、關閉 Unity 專案，並確認原始資源與設定完整。** 一般情況下，專案裡的 `Library` 存放的是 Unity 產生的內部資源資料。刪除後，下次開啟專案會重新產生資料，也需要重新匯入資源。整理不常使用的舊專案時，可以視需要清理，不必每天清空。[Unity 資源匯入說明](https://docs.unity3d.com/6000.0/Documentation/Manual/ImportingAssets.html)

電腦裡留著好幾個 Unity 專案時，可以先用 [MangoDisk](/tw) 的深度清理，集中查看已辨識專案的產物路徑與大小，再決定哪些舊專案的 `Library` 值得清。免費開源，不必註冊或登入，掃描在本機完成。

## 用 MangoDisk 比較舊專案的占用

手動處理一個專案並不難；專案多了，麻煩的是逐一找資料夾、查看大小，再分清哪些還在開發。MangoDisk 會集中列出辨識到的 Unity 產物，展開後可以依個別路徑選取，不必一次清掉所有專案。

![MangoDisk Windows 版深度清理，依分類查看路徑、大小與清理選項](https://assets.mangodisk.app/images/screenshots/windows/tw/light-01-deep-cleanup.jpg)

*上圖為深度清理介面示意，實際列出的專案依掃描結果而定。*

開啟[深度清理](/tw/docs/features/deep-clean)，執行**標準掃描**，在**專案建置產物**中查看 **Unity 建置產物**。專案放在其他磁碟時，可從掃描按鈕旁的**選擇磁碟**加入該磁碟。

準備清理時：

1. 依專案路徑比較大小，找出近期不打算繼續開發的舊專案。
2. 儲存場景與程式碼，停止建置，結束 Unity Editor；確認重要資源、設定及自行修改的內容已備份。
3. 選擇**全部取消選取**，展開 Unity 項目，只勾選檢查過的舊專案 `Library` 路徑。
4. 檢查選取路徑與預估可釋放空間，再確認清理。

**Unity 項目也可能包含 Temp、Obj、Logs 和 MemoryCaptures，不要為了清 Library 就把整組全選。** 記憶體快照和記錄是否還有用途，要另外判斷。

Unity 建置產物預設不勾選，單純掃描也不會刪除檔案。確認執行後，MangoDisk 會永久刪除所選內容，不經過資源回收筒或垃圾桶；還原限制見[安全清理指南](/tw/docs/safety)。清理前請自行確認 Unity 已結束、建置已停止，不要只依賴清理畫面上的提示。

## Library 的位置與空間占用

這裡說的 `Library` 位於 **Unity 專案根目錄**，與 `Assets`、`Packages`、`ProjectSettings` 並列。它不是 Mac 使用者目錄下的 `~/Library`，不要只因名稱相同，就刪除其他位置的資料夾。

Unity 會將原始資源轉換成適合編輯器與目標平台使用的內部資料，存放在專案的 `Library` 裡。每個專案都有自己的這份資料，所以即使程式碼沒有增加多少，多個專案留下的快取仍值得檢查。

`Library` 很大，不一定代表出了問題。對每天開啟的專案，這些資料能省去重複匯入的工作；清掉後，再開啟又會產生。要釋放多少空間、下次願意花多少時間重新匯入，最好一起考慮。

<table>
<thead>
  <tr>
    <th>
      專案狀況
    </th>
    
    <th>
      清理建議
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      很久沒開啟的練習、展示或舊版專案
    </td>
    
    <td>
      確認備份後，優先查看 Library 是否占了值得清理的空間
    </td>
  </tr>
  
  <tr>
    <td>
      近期還要繼續開發、測試或建置
    </td>
    
    <td>
      通常先保留快取，避免反覆重新匯入
    </td>
  </tr>
  
  <tr>
    <td>
      Library 裡放過個人檔案，或直接改過套件原始碼
    </td>
    
    <td>
      先保留自行修改的內容，不直接當快取刪除
    </td>
  </tr>
</tbody>
</table>

## 哪些資料夾要保留

`Library` 可以重新產生，不代表專案根目錄裡的其他內容也能刪除。

<table>
<thead>
  <tr>
    <th>
      內容
    </th>
    
    <th>
      處理方式
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        Library
      </code>
    </td>
    
    <td>
      關閉專案，確認可重新產生且沒有自行保存的內容後，視需要清理
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        Assets
      </code>
      
       與對應的 <code>
        .meta
      </code>
    </td>
    
    <td>
      保留，包含專案資源、指令碼及資源識別資訊等資料
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        Packages
      </code>
    </td>
    
    <td>
      保留，包含相依套件設定，也可能有嵌入套件原始碼
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        ProjectSettings
      </code>
    </td>
    
    <td>
      保留，包含專案設定
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        Temp
      </code>
      
      、<code>
        Obj
      </code>
    </td>
    
    <td>
      分別確認用途與專案狀態，不必隨著 Library 一起刪除
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        Logs
      </code>
    </td>
    
    <td>
      排查問題時保留；舊記錄也可能有用
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        MemoryCaptures
      </code>
    </td>
    
    <td>
      保留仍有用途的記憶體快照，不當作可自動重建的快取
    </td>
  </tr>
</tbody>
</table>

`.meta` 檔案看似不起眼，卻保存資源識別與匯入相關資訊，要和資源一起保留。[Unity 資源中繼資料說明](https://docs.unity3d.com/6000.0/Documentation/Manual/AssetMetadata.html)

另一個容易漏掉的情況是 **直接修改過 Library/PackageCache 裡的套件原始碼**。清理前先保存這些修改。Unity 官方的 URP 修改流程，是將套件從快取複製到專案的 `Packages` 中，再修改嵌入套件，不要把自行修改的內容只留在快取裡。[Unity 修改 URP 原始碼說明](https://docs.unity3d.com/6000.0/Documentation/Manual/urp/customize/modify-urp-source-code.html)

`MemoryCaptures` 又是另一類資料。Unity Memory Profiler 會在這裡保存擷取或匯入的記憶體快照，用來分析、比較當時的記憶體使用情況。重新開啟專案，不會替你重建同一份歷史快照。[Memory Profiler 快照說明](https://docs.unity3d.com/Packages/com.unity.memoryprofiler@1.1/manual/snapshot-capture.html)

## 單一專案也可以手動清理

儲存工作、結束 Unity 後，在 Windows 檔案總管或 Mac Finder 中開啟專案根目錄。確認同一層有 `Assets`、`Packages` 和 `ProjectSettings`，在 Windows 查看 `Library` 的「內容」，或在 Finder 選擇「顯示簡介」，確認資料夾大小是否值得處理。

完成備份並確認內容後，只移除這個專案的 `Library`，保留其他資料夾。想先保留還原機會，可以移到資源回收筒或垃圾桶；其中的副本仍會占空間，之後要釋放容量，還需要處理這份副本。

一個專案用檔案總管或 Finder 就能處理；需要比較多個舊專案時，MangoDisk 能集中顯示候選路徑與大小，讓你逐項選取。

MangoDisk 沒列出某個專案，不代表它沒有可清理的產物。目前 Unity 規則透過 `Assembly-CSharp.csproj`、`Assets` 和 `ProjectSettings` 辨識專案；缺少這些標記，或資料夾不在本次掃描範圍內，都可能沒有結果。可以先用磁碟空間分析查看實際目錄，不必為了讓清理工具辨識而修改專案。[MangoDisk Unity 清理規則](https://github.com/harry0703/MangoDisk/blob/v1.1.6/src-tauri/crates/mangodisk-core/rules/project-artifacts/unity.toml)

## 清理後 Library 又變大了

重新開啟專案後，Unity 會產生新的 `Library`。這是正常行為：清理移除了原本的快取，沒有改變專案對這些資料的需求。

第一次重新開啟可能要花更多時間匯入資源。先等匯入完成，再檢查場景、資源參照與建置情況。不要為了讓資料夾一直保持很小而反覆清空，也別把清 Library 當成能解決所有 Unity 錯誤的方法。

清理後磁碟還是很滿，可以用 MangoDisk 的[磁碟空間分析](/tw/docs/features/disk-analysis)找出真正大的資料夾。占用也可能來自原始素材、舊安裝檔或其他工具的建置產物。`Assets` 很大時，要判斷哪些素材仍被專案使用，不能套用快取的清理方式。

其他開發工具可分別參考 [Gradle 快取清理](/tw/blog/clear-gradle-cache)和 [Cargo 快取與 target 的差異](/tw/blog/cargo-cache-vs-target-folder)。用途不同的資料，依實際路徑分別處理。

[下載 MangoDisk](/tw)，先比較舊專案的產物占用，再選取值得清理的 `Library`。還在開發的專案，以及仍需使用的診斷資料，可以繼續保留。

延伸閱讀：[開發者磁碟清理指南](/tw/blog/topics/developer-cleanup)。
