Kunci file
Ketergantungan tertanam

Lookbook

Ketika Unity memuat sebuah proyek, Unity Package Manager membaca project manifest sehingga dapat menghitung daftar paket mana untuk mengambil dan memuat. Ketika pengguna menginstal atau menghapus paket melalui Paket jendela Manager, Manajer Paket menyimpan perubahan dalam file manifestasi proyek. File manifestasi proyek mengelola daftar paket melalui objek dependencies.

Selain itu, manifestasi proyek berfungsi sebagai file konfigurasi untuk Manajer Paket, yang menggunakan manifestasi untuk menyesuaikan URL registry dan mendaftarkan registries kustom.

Anda dapat menemukan file manifestasi proyek, yang disebut manifest.json, di folder Packages di bawah folder akar proyek Unity Anda. Seperti paket file manifest, file manifestasi proyek menggunakan sintaksis JSON (JavaScript Object Notation).

Properties

Semua properti adalah opsional. Namun, jika file manifestasi proyek Anda tidak mengandung nilai apa pun, jendela Manajer Paket tidak memuat, dan Manajer Paket tidak memuat paket apa pun.

Tip: Setiap saat, Anda dapat memperbaiki masalah dengan registry Anda dengan memilih Reset packages to defaults dari menu Bantuan Unity utama. Namun, perhatikan bahwa tindakan ini mengatur ulang semua perubahan yang Anda buat pada ketergantungan proyek Anda sehingga yang terbaik untuk melakukan ini sebagai resor terakhir.

Key JSON Type Description
dependenciesDalam konteks Manajer Paket, ketergantungan adalah versi paket khusus yang diperlukan proyek atau paket lain untuk bekerja. Ketergantungan dinyatakan dalam bentuk package_name@package_version. Proyek dan paket menggunakan properti dependencies dalam manifestasi mereka untuk menentukan set paket yang mereka butuhkan. More info
Lihat di Glossary
Object Koleksi paket yang diperlukan untuk proyek Anda. Ini hanya mencakup ketergantungan langsung (tergantungan langsung tercantum dalam paket manifestasiSetiap paket memiliki manifest, yang menyediakan informasi tentang paket ke Manajer Paket. Manifest mengandung informasi seperti nama paket, versinya, deskripsi untuk pengguna, ketergantungan pada paket lain (jika ada), dan rincian lainnya. More info
Lihat di Glossary
). Setiap entri peta Nama paket ke minimum version yang diperlukan untuk proyek:

{
"dependencies": {
"com.my-package": "2.3.1",
"com.my-other-package": "1.0.1-preview.1",
etc.
}
}

sourceversionspath ke folder lokal atau file tarballGit URL

Note paket adalah registry). Namun, selain menggunakan embedded, Anda juga dapat menentukan Packages, atau name. : Anda tidak perlu menentukan paket di sini karena Manajer Paket menemukannya di dalam folder proyek Anda dan memuatnya secara otomatis. The Package Manager mengabaikan setiap entri jika ada paket tertanam dengan yang sama dalam manifestasi paketnya sendiri.
enableLockFile Boolean Aktifkan file kunci untuk memastikan bahwa ketergantungan diselesaikan dengan cara yang menentukan. Ini diatur ke true secara default. Untuk informasi lebih lanjut, lihat Menggunakan file kunci.
resolutionStrategy String Upgrade ketergantungan tidak langsungKetergantungan indirect, atau transitif terjadi ketika proyek Anda meminta paket yang sendiri “tergantung pada” paket lain. Misalnya, jika proyek Anda tergantung pada paket alembic@1.0.7 yang pada gilirannya tergantung pada paket timeline@1.0.0, maka proyek Anda memiliki ketergantungan langsung pada Alembic dan ketergantungan tidak langsung pada Timeline. More info
Lihat di Glossary
berdasarkan aturan Versi Semantik. Ini diatur ke lowest secara default. Untuk informasi lebih lanjut, lihat Menyiapkan strategi resolusi di bawah ini.
scopedRegistries Array objek Tentukan registries kustom selain registry default. Ini memungkinkan Anda untuk menghosting paket Anda sendiri.

Lihat Pendaftaran Lingkup untuk rincian lebih lanjut.
testables Array String Daftar nama paket yang menguji Anda ingin memuat di Unity Paket Test Framework (sebelumnya disebut Test Runner) adalah alat Unity yang menguji kode Anda dalam mode Edit dan Mode Play, dan juga pada platform target seperti Standalone, Android, atau iOS.
Lihat di Glossary
. Untuk informasi lebih lanjut, lihat Menambahkan tes ke paket.

Note: Anda tidak perlu menentukan paket embedded di sini karena Kerangka Uji Unity menganggap mereka dapat dites secara default.
useSatSolver Boolean Aktifkan algoritma resolusi ketergantungan SAT solver-based. Ini diatur ke true secara default.

Jika Anda mengatur properti ini ke false, Manajer Paket menggunakan yang diuraikan sebagai gantinya.


Example

{
  "scopedRegistries": [{
    "name": "My internal registry",
    "url": "https://my.internal.registry.com",
    "scopes": [
      "com.company"
    ]
  }],
  "dependencies": {
    "com.unity.package-1": "1.0.0",
    "com.unity.package-2": "2.0.0",
    "com.company.my-package": "3.0.0",
    "com.unity.my-local-package": "file:<path>/my_package_folder",
    "com.unity.my-local-tarball": "file:<path>/my_package_tarball.tgz",
    "com.unity.my-git-package": "https://my.repository/my-package.git#v1.2.3"
  },
  "enableLockFile": true,
  "resolutionStrategy": "highestMinor",
  "testables": [ "com.unity.package-1", "com.unity.package-2" ]
}

Menyiapkan strategi resolusi

Meskipun Anda dapat menambahkan versi paket secara eksplisit ke proyek memanifestasikan resolusi ketergantungan paket Unity untuk meningkatkan ketergantungan tidak langsung, ini bukan strategi yang sangat baik, karena dua alasan:

  • Ini menempatkan lebih banyak tanggung jawab pada pemilik proyek untuk mempertahankan versi ketergantungan.
  • Seiring waktu, Anda mungkin memiliki ketergantungan yang tidak diperlukan oleh proyek.

Pendekatan yang lebih baik adalah untuk menyesuaikan bagaimana Manajer Paket memilih ketergantungan tidak langsung berdasarkan aturan Versi Semantik dengan mengatur properti resolutionStrategy:

Value: Description:
lowest Jangan meningkatkan ketergantungan tidak langsung. Sebaliknya, itu menggunakan versi yang diminta. Ini adalah mode default.
highestPatch Upgrade ke versi tertinggi dengan komponen Mayor dan Minor yang sama. Sebagai contoh, dengan versi yang diminta 1.2.3, strategi ini memilih versi tertinggi dalam kisaran [1.2.3, 1.3.0) (yaitu, >= 1.2.3 dan < 1.3.0).
highestMinor Upgrade ke versi tertinggi dengan komponen utama yang sama. Misalnya, dengan versi yang diminta 1.2.3, strategi ini memilih versi tertinggi dalam kisaran [1.2.3, 2.0.0) (yaitu, >= 1.2.3 dan < 2.0.0).

Note: Versi 1.0.0 menandai versi yang stabil pertama, produksi-ready. Di bawah ini bahwa, versi 0.X.Y menunjukkan bahwa API mereka belum stabil, dan versi minor berturut-turut mungkin memperkenalkan perubahan putus. Bagian spesifikasi SemVer ini memungkinkan melepaskan versi awal dari paket tanpa menghambat perkembangan cepat. Karena ini, ketika versi target adalah 0.X.Y, highestMinor berperilaku seperti highestPatch untuk memastikan memilih versi yang kompatibel kembali. Sebagai contoh, dengan versi yang diminta 0.1.3, strategi ini memilih versi tertinggi dalam kisaran [0.1.3,0.2.0).
highest Tingkatkan ke versi tertinggi. Sebagai contoh, dengan versi yang diminta 1.2.3, strategi ini memilih versi tertinggi dalam kisaran [1.2.3,) (yaitu, >= 1.2.3 tanpa batas atas)

Note: Kisaran ini tidak pernah memungkinkan ketergantungan untuk melompat dari rilis stabil ke paket experimental atau pre-release.

Kunci file
Ketergantungan tertanam