Paket negara dan siklus hidup
Cache Global

Ketergantungan dan resolusi

Ketika Anda bekerja di jendela Paket Manager, Anda dapat menginstal paket dari beberapa sumber (a registry, folder lokal atau tarball, dan Git URL). Namun, sementara paket Manager menginstal paket dari sumber ini mulus, pertama harus membuat serangkaian perhitungan untuk memutuskan versi mana untuk menginstal, dan paket dan versi lain untuk menginstal untuk mendukungnya.

Direct dependencies

Ketika Anda memilih versi paket untuk menginstal melalui jendela Paket Manager, Anda menambahkan "tergantungan" ke manifestasi proyekSetiap proyek Unity memiliki manifestasi proyek, yang bertindak sebagai titik masuk untuk Manajer Paket. File ini harus tersedia di direktori <project>/Packages. Manajer Paket menggunakannya untuk mengkonfigurasi banyak hal, termasuk daftar dependensi untuk proyek itu, serta repositori paket untuk permintaan. More info
Lihat di Glossary
Anda. Ini adalah pernyataan bahwa Anda memerlukan versi tertentu dari paket tertentu untuk proyek untuk bekerja. Untuk menambahkan ketergantungan pada proyek Anda, Anda menambahkan referensi ke paket dan versi dalam bentuk package-name@package-version ke properti dependencies dari file <project-root>/Packages/manifest.json. Ini disebut dependensi “arah” karena proyek Anda langsung tergantung pada mereka.

Indirect dependencies

Paket juga dapat memerlukan paket lain untuk bekerja. Ini disebut "indirect", atau transmisikan, ketergantungan. Pengembang paket menambahkan ini ke properti dependencies dari file manifestasi paket selama pengembangan (<package-root>/package.json). Misalnya, dalam diagram di bawah ini, paket alembic@1.0.7 memiliki ketergantungan pada paket timeline@1.0.0, sehingga paket timeline adalah “indirect ”dependency. Di sisi lain, proyek memiliki ketergantungan pada paket cinemachine@2.6.0 dan alembic@1.0.7, sehingga mereka adalah ketergantungan "arah".

A diagram showing both direct and indirect dependencies

Version overrides

Ketika Anda menambahkan versi paket sebagai ketergantungan, versi itu tidak tentu versi yang diinstal Manajer Paket, karena harus mempertimbangkan semua ketergantungan dalam proyek Anda, apakah langsung atau tidak langsung. Misalnya, dalam kasus ini, paket Pengaturan Manager yang diminta adalah versi 1.0.1, tetapi versi yang diinstal sebenarnya versi 1.0.3 karena paket lain tergantung pada versi yang lebih tinggi, seperti yang ditunjukkan dalam pesan informasi (B):

When you click the information button in the details pane (A), a text box appears (B) explaining why this version was installed instead of the one you requested
Ketika Anda mengklik tombol informasi di pane rincian (A), kotak teks muncul (B) menjelaskan mengapa versi ini diinstal daripada yang Anda minta

Dependency graph

Manajer Paket hanya dapat menginstal satu versi paket pada waktu, sehingga harus membangun grafik ketergantungan, yang merupakan daftar setiap ketergantungan langsung dan tidak langsung untuk proyek. Grafik ketergantungan menentukan versi dari setiap paket untuk menginstal.

Lock file

Ketika Manajer Paket berhasil menyelesaikan semua konflik versi, itu menghemat resolusi di lock file untuk memastikan determinisme (sehingga paket yang sama dipasang setiap kali), dan untuk mengurangi jumlah waktu dan sumber daya yang dibutuhkan untuk memperingatkan grafik ketergantungan lagi.


Paket negara dan siklus hidup
Cache Global