Peningkatan ke Unity 2020 LTS
Peningkatan ke Unity 2018 LTS

Peningkatan ke Unity 2019 LTS

Note: Ikuti saran di bagian ini dalam urutan rilis. Misalnya, jika Anda perlu meningkatkan proyek Anda dari 2018 ke 2020, baca panduan peningkatan 2019 untuk melihat apakah ada perubahan yang Anda perlukan sebelum Anda membaca panduan peningkatan 2020.

Daftar halaman ini berubah dalam versi Unity 2019 yang mungkin mempengaruhi proyek yang ada ketika Anda meng-upgrade dari versi Unity 2018 ke 2019 LTS. Jika Anda mengupgrade dari versi Unity 2017, pertama kali melihat panduan Peningkatan ke Unity 2018 LTS.

Catatan bahwa 2019 LTS juga dikenal sebagai 2019.4.

Page outline


Pipa Render Ringan (LWRP) menjadi Pipa Render Universal (URP)

Render PipelineRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary
ringan (LWRP) sekarang adalah Pipa Render Universal (URP) di Unity 2019.3 dan kemudian.

Jika Proyek Anda menggunakan LWRP, Anda harus meningkatkan Proyek Anda untuk menggunakan URP. Untuk panduan langkah demi langkah untuk proses peningkatan, lihat .

Kembali ke atas

Pembaruan ShaderUtil

ShaderUtil.ClearShaderErrors() digantikan oleh ShaderUtil.ClearShaderMessages() untuk naming konsistensi dan sekarang ditandai sebagai usang. Proyek Anda yang ada scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
secara otomatis ditingkatkan ketika Anda membukanya di Unity 2019. 4. Oktober

Kembali ke atas

Animasi C# Jobs

Login C# pekerjaan bergerak keluar dari namespace eksperimental dari UnityEngine. Login Animasi ke UnityEngine.Animations.

Unity 2019.4 secara otomatis memperbarui sebagian besar skrip Anda kecuali untuk skrip dengan metode ekstensi pekerjaan Animator berikut:

  • BindStreamTransform
  • BindStreamProperty
  • BindCustomStreamProperty
  • BindSceneTransform
  • BindSceneProperty
  • OpenAnimationStream
  • CloseAnimationStream
  • ResolveAllStreamHandles
  • ResolveAllSceneHandles

Anda harus menambahkan pernyataan UnityEngine.Animations; secara manual ke script tersebut.

Kembali ke atas

Scripting Render Pipeline (SRP) API perubahan

Peristiwa RenderPipeline.beginCameraRendering yang tidak didokumentasikan telah dihapus. Anda harus mengganti ini dengan peristiwa dari kelas RenderPipeline.beginFrameRendering.RenderPipelineManager class.

Fungsi dilindungi statis RenderPipeline BeginFrameRendering dan BeginCameraRendering telah dihapus. Anda harus mengganti ini dengan tanda tangan yang mengambil ScriptableRenderContext dalam parameter. Selain itu ada sekarang metode EndCameraRendering dan EndFrameRendering yang harus Anda sebut juga.

Kembali ke atas

Addressables

AsyncLoad sekarang usang. Gunakan Async.LoadAssetAsync bukan.

Kembali ke atas

Aset Baru Pipa Impor

Pipa impor aset baru tersedia dengan Unity 2019.3 dan kemudian. Jika Anda memiliki proyek yang ada, Anda dapat meng-upgrade ke Aset Pipa impor baru menggunakan Project Settings Window di Editor:

Memilih Version 2 akan memberi tahu editor yang Anda sekarang ingin menggunakan Aset Baru Impor Pipeline bersama dengan proyek ini, dan restart proyek Anda akan mengubahnya menggunakan Aset baru Impor kode Pipeline. Ini pada dasarnya memiliki efek yang sama dengan menghapus folder Perpustakaan Anda, tetapi tanpa menghapusnya. Ketika beralih menggunakan Aset impor pipa V2, Hasil impor dari Aset asli impor pipa tidak dihapus sebagai V2 menciptakan struktur folder sendiri untuk menyimpan Hasil Impornya. Proyek yang telah Anda buat di Unity 2019.2 atau lebih tua masih akan menggunakan Aset asli Impor Pipeline secara default. Ketika membuka proyek tersebut pada Unity 2019.3 untuk pertama kalinya, Anda akan mendapatkan opsi untuk meningkatkan ke Aset baru Pipeline. Jika Anda menurun, proyek Anda akan terus menggunakan Aset Impor Pipeline asli. Selanjutnya, versi yang dipilih disimpan dalam pengaturan EditorS. file aset proyek Anda, sehingga dapat dikontrol versi.

Proyek Baru yang dibuat dengan Aset Baru Impor Pipeline

Ketika membuat Proyek baru dengan Unity 2019.3 atau yang lebih baru, Aset baru Impor Pipeline telah menjadi cara default baru untuk bekerja. Semua proyek baru yang Anda buat akan menggunakannya.

Perubahan Behaviour ke Pipa Impor Aset Baru

Multiple versions of the same asset are cached in the Library folder
Hingga Unity 2019.2 (dengan Aset asli Impor Pipeline), folder Perpustakaan terdiri dari GUID dari Aset menjadi nama file mereka. Dengan demikian, beralih dari platform ke platform lain akan membatalkan Hasil Impor di folder Library, menyebabkannya untuk mengekspor kembali setiap kali Anda beralih platform.

Aset Impor Pipeline V1

Jika Anda harus beralih kembali dan ke depan antara platform beberapa kali per hari, ini dapat dengan mudah mengambil jam, tergantung pada ukuran proyek Anda. Beberapa dari Anda telah mencari workarounds untuk ini, seperti memiliki salinan proyek Anda per platform pada mesin Anda, tetapi itu tidak skala sangat baik. Dengan Aset Baru Impor Pipeline, kami telah menghapus GUID ke File Name mapping. Karena ketergantungan untuk Aset tertentu dilacak, kita dapat Hash semuanya bersama-sama untuk membuat revisi untuk Hasil Impor Aset. Ini memungkinkan kita untuk memiliki beberapa revisi per Aset, yang kemudian berarti bahwa kita tidak lagi terikat oleh GUID ke pemetaan Nama File. Tidak memiliki persyaratan ini memungkinkan kami untuk memiliki Hasil Impor yang bekerja pada konfigurasi yang berbeda. Untuk Platform Cepat Beralih, kita bisa memiliki Hasil Impor per platform, sehingga ketika Anda beralih platform kembali dan ke depan Hasil Impor sudah ada, sehingga membuat platform beralih banyak pesanan besar lebih cepat daripada dengan Aset Impor Pipeline V1.

Aset Impor Pipeline V2

Caching and the Unity Accelerator
Sebagian besar importir memiliki pekerjaan yang signifikan dilakukan kepada mereka untuk meningkatkan determinsm mereka dan memiliki efek positif pada caching. Ini berarti bahwa jika Accelerator Unity digunakan, hasil impor akan diunggah ke penyimpanan terpusat di mana mesin lain dapat terhubung ke dan manfaat dari pekerjaan yang dilakukan untuk Aset yang sama pada mesin yang berbeda. Aset dengan ketergantungan dinamis dapat disimpan sekarang (misalnya prefab bersarang, naungan, dll). Untuk daftar yang lebih komprehensif dari Importir dan file terkait mereka, periksa halaman Manual Aset Baru

Caching of Scripted Importers:
ScriptedImporters dan importir dengan ketergantungan terdaftar tidak cache dengan Aset Lama Pipa Impor.

Old Behaviour

Dengan Aset Lama Impor Pipeline, switching platform yang tidak valid semua impor sebagai Hasil Impor adalah berdasarkan GUID, sehingga beralih platform akan menimpa hasil impor setiap kali.

New Behaviour

Dalam Aset Baru Impor Pipeline, beralih platform tidak validasi impor sebagai File pada disk mewakili hasil impor adalah hash dari kontennya sendiri, sehingga memastikan bahwa ketika beralih platform konten berbeda dan menghasilkan file baru, sehingga menjaga kedua versi Hasil Impor sekitar dan hanya beralih antara satu atau lain, tanpa harus mengimpor apa pun.

Jumlah Panggilan ke OnPostProcessAllAssets

Dalam Aset Lama Impor Pipeline, jumlah panggilan ke fungsi OnPostProcessAllAssets adalah non-deterministik. Berarti bahwa fungsi ini bisa disebut sekali, atau beberapa kali, untuk perubahan yang sama. Dengan Aset baru Impor Pipeline, akan ada panggilan tunggal ke OnPostProcessAllAssets untuk mendeteksi perubahan Script (file .cs), dan satu untuk perubahan non-script (think .png, .fbx, file .wav).

Kompilasi Script Sinkronkan

Dalam Aset Lama Impor Pipeline, satu bisa memicu kompilasi dan rantai masuk ke mode bermain sementara kompilasi terjadi. Ini adalah penghemat waktu besar dalam situasi tertentu, memiliki kompilasi non-synchronous dapat menyebabkan hasil non-deterministik. Dengan Aset Baru Impor Pipeline, ini telah berubah sehingga Aset Impor Pipeline menggerakkan sebagian besar Kompilasi Script, dan seperti itu membutuhkan pendekatan deterministik, sehingga mengunci editor sampai Teks Kompilasi selesai.

Kembali ke atas

Editor Tilemap sekarang menjadi Paket

Editor TilemapGameObject yang memungkinkan Anda untuk dengan cepat membuat tingkat 2D menggunakan ubin dan overlay grid. More info
Lihat di Glossary
sekarang merupakan paket. Paket ini secara otomatis dipasang di Proyek Unity baru yang dibuat dengan template Proyek 2D. Untuk informasi lebih lanjut tentang menginstal paket melihat Menambahkan dan menghapus paket.

Semua kelas publik telah pindah ke UnityEditor. Catalog Unity mengkompilasi skrip Anda yang merujuk kelas ini ke dalam "Unity.2D.Tilemap.Editor" Majelis Definisi Aset. Ini adalah:

  • GridBrush
  • Login Login
  • GridBrushEditor
  • GridSelection

Unity akan mencoba untuk memperbarui pernyataan Tilemap using yang relevan di script Anda tetapi silakan periksa dan mengubah jika diperlukan.

Jika Anda merujuk pada kelas Tooling Tilemap dengan skrip yang merupakan bagian dari Definisi Perakitan, Anda harus menambahkan "Unity.2D.Tilemap.Editor" Definisi sebagai Referensi Definisi Perakitan di bawah Definisi Perakitan Anda. Unity mungkin telah mengatur ini secara otomatis untuk Anda tetapi harap mengubahnya jika belum.

Assembly definition for the Tilemap Editor
Definisi perakitan untuk Editor Tilemap

Jika Anda memiliki rakitan prekompiled yang merujuk pada kelas Tooling Tilemap dari versi Unity sebelumnya, Anda akan menemukan masalah ketika menggunakannya karena perubahan ini. Jika memungkinkan, silakan memperbarui dan mengulangi rakitan ini terhadap rakitan Tooling Tilemap baru.

Jika Anda memiliki rakitan prekompiled yang merujuk pada kelas Tooling Tilemap dari versi Unity sebelumnya, Anda perlu memperbarui dan mengandalkan rakitan ini untuk referensi rakitan Tooling Tilemap baru.

Contoh dari isu-isu ini ketika mengimpor perakitan yang sudah ada (sebagai kesalahan di jendela Konsol):

Kegagalan untuk mengekstrak {Class di Precompiled Assembly} kelas tipe dasar UnityEditor. GridBrush ketika memeriksa {Precompiled Assembly} Bongkar patah perakitan {Precompiled Assembly}, perakitan ini dapat menyebabkan crash di runtime

Kesalahan ini dapat disebabkan oleh pencucian dari salah satu kelas Tooling Tilemap seperti GridBrush.

Contoh dari isu-isu ini ketika menggunakan perakitan yang sudah ada (sebagai kesalahan di jendela Konsol):

TypeLoadException: Could not resolve type with token 01000011 (from typeref, class/assembly UnityEditor.GridBrush, UnityEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
Error: Could not load signature of {Method in Precompiled Assembly) due to: Could not resolve type with token 01000011 (from typeref, class/assembly UnityEditor.GridBrush, UnityEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null) assembly:UnityEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null type:UnityEditor.GridBrush member:(null) signature:<none>

Kesalahan ini dapat disebabkan oleh menciptakan atau memanggil salah satu metode kelas Tooling Tilemap seperti GridBrush.

Kembali ke atas

SpriteTooling sekarang merupakan Paket

Sprite Tooling (Sprite Editor Window) sekarang merupakan paket. Untuk informasi lebih lanjut tentang menginstal paket melihat Menambahkan dan menghapus paket.

  • Paket ini tidak ditambahkan ke Proyek Unity baru secara default, kecuali Proyek baru dibuat dengan template Proyek 2D.
  • Paket ini akan ditambahkan ke Proyek Unity yang sudah ada sebelumnya (2019.1 dan sebelumnya) ketika diupgrade ke Unity 2019.1. Anda dapat menghapus paket ini Jika proyek Anda tidak menggunakan 2D Sprites dan tidak memerlukan penggunaan SpriteObjek grafis 2D. Jika Anda digunakan untuk bekerja di 3D, Sprites pada dasarnya hanya tekstur standar tetapi ada teknik khusus untuk menggabungkan dan mengelola tekstur sprite untuk efisiensi dan kenyamanan selama perkembangan. More info
    Lihat di Glossary
    Tooling.
  • Sebagai bagian dari mengkonversi Sprite Tooling ke Paket, nama eksperimental telah dihapus. Jika proyek Anda memiliki skrip yang merujuk kelas terkait Sprite Tooling, pastikan bahwa mereka menggunakan namespace yang benar setelah peningkatan, misalnya. menambahkan “menggunakan UnityEditor.U2D.Sprites” jika diperlukan.
  • Jika Anda merujuk pada kelas Sprite dengan skrip yang merupakan bagian dari Definisi Perakitan, Anda perlu menambahkan “Unity.2D.Sprite.Editor” Majelis Definisi sebagai Referensi Definisi Perakitan di bawah Definisi Perakitan Anda.
Assembly definition for the Sprite Tooling
Definisi perakitan untuk Sprite Tooling

Kembali ke atas

Unity UI sekarang merupakan Paket

Unity UI (UGUI) sekarang merupakan paket, com.unity.ugui. Anda dapat mengaksesnya dari Paket Manager (menu: Window > Paket Manager).

Unity UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary
adalah paket inti yang kapal dengan Unity. Anda tidak perlu menginstalnya di proyek baru. Ketika Anda meningkatkan Proyek Unity yang ada, diciptakan dengan versi 2019.2b1 dan sebelumnya, ke Unity 2019.2, paket ini ditambahkan secara otomatis. Definisi perakitan secara otomatis mendapatkan referensi ke perakitan uGUI. Jika Anda menginstal Unity 2019.2 overtop dari versi Unity yang lebih tua, pastikan bahwa folder GUISystem, terletak di \Editor\Data\UnityExtensions\ Unity dihapus. Jika Anda mungkin mendapatkan kesalahan redefinition kelas. Kode sumber UI Unity tidak lagi dipublikasikan ke BitBucket karena Unity menyediakannya dengan paket. Dokumentasi API UI Unity tidak lagi dalam referensi API Scripting utama. Anda dapat mengaksesnya dari bagian API Scripting dari dokumentasi paket UI Unity.

Kembali ke atas

Login Elemen sekarang merupakan fitur standar dan tidak eksperimental

Lihat UI Elemen 2019.1 panduan peningkatan untuk informasi lebih lanjut.

Kembali ke atas

Avast Free Antivirus

Opsi .NET 3,5 Equivalent untuk Versi Scripting Runtime telah dihapus. Proyek secara otomatis dimigrasi untuk menggunakan .NET 4.x Pilihan setara saat dibuka pada tahun 2019. 2. di

Kembali ke atas

Perbaikan Pencahayaan

Sebelum 2019.1 Penggeser Intensitas langsung hanya mempengaruhi lightmapsTekstur pra-render yang mengandung efek sumber cahaya pada objek statis di tempat kejadian. Lightmaps dilalui atas geometri adegan untuk menciptakan efek pencahayaan. More info
Lihat di Glossary
ketika menggunakan Progresif LightmapperAlat dalam Unity yang bakes lightmap sesuai dengan pengaturan lampu dan geometri di tempat kejadian Anda. More info
Lihat di Glossary
. Untuk EnlightenSistem pencahayaan oleh Geomerics yang digunakan dalam Unity untuk lightmapping dan untuk Mencerahkan Penerangan Global Realtime. More info
Lihat di Glossary
, diterapkan pada peta light probesprobe cahaya menyimpan informasi tentang bagaimana cahaya melewati ruang di tempat kejadian Anda. Koleksi probe cahaya yang diatur dalam ruang tertentu dapat meningkatkan pencahayaan pada objek bergerak dan pemandangan LOD statis dalam ruang itu. More info
Lihat di Glossary
dan cahaya. Sekarang semua backends menerapkan nilai Intensitas langsung ke peta ringan dan probe cahaya. Setelah memanggang pencahayaan lagi, Anda mungkin melihat bahwa probe akan muncul lebih terang jika nilai Intensitas Indirect dimodifikasi. Ini terbaik untuk Hapus Baked Data sebelum baking lightmaps lagi setelah upgrade.

Kembali ke atas

Perubahan konstruktivitas UnityAPICompatibilityVersionAttribute

Konstruktor yang mengambil satu string sekarang usang. Lihat documentation untuk informasi pada kelebihan beban yang didukung.

Kembali ke atas

Persyaratan Sistem yang Diubah

Proyek yang dibuat dengan Unity 2019 LTS memerlukan versi macOS 10.12 atau Ubuntu 16.04 atau nanti.

Kembali ke atas

Multiplayer (UNet) API tingkat tinggi telah pindah ke paket

Multiplayer high level APISistem untuk membangun kemampuan multiplayer untuk permainan Unity. Ini dibangun di atas lapisan komunikasi real-time transportasi tingkat bawah, dan menangani banyak tugas umum yang diperlukan untuk permainan multiplayer. More info
Lihat di Glossary
telah dipindahkan dari ekstensi ke paket. Ini tidak mempengaruhi kelas NetworkTransport (API tingkat rendah). Semua dependensi yang ada di mesin Unity telah dipindahkan ke paket. Ini berarti API tingkat tinggi sekarang independen kecuali untuk beberapa kait ke dalam profilerJendela yang membantu Anda untuk mengoptimalkan permainan Anda. Ini menunjukkan berapa banyak waktu yang dihabiskan di berbagai bidang permainan Anda. Sebagai contoh, dapat melaporkan persentase waktu yang dihabiskan rendering, aimating, atau dalam logika permainan Anda. More info
Lihat di Glossary
yang tidak bisa dimigrasi pada saat ini.

Proyek Lebih tua yang berisi API tingkat tinggi akan memiliki paket secara otomatis ditambahkan untuk mencegah kesalahan kompiler. Ini tidak terjadi untuk Proyek baru dan Anda dapat menambahkannya jika diperlukan dari jendela Paket Manager. Lihat API tingkat tinggi multiplayer.

Kembali ke atas

The UNITY_ADS directive dihapus

Pada tahun 2019.4, Unity tidak secara otomatis mendefinisikan UNITY_ADS. Anda harus berhenti menggunakan UNITY_ADS dalam skrip Anda, atau membuat #define global kustom baru untuk itu. Lihat halaman Platform Kompilasi tergantung untuk panduan tentang cara membuat #define global kustom baru.

Peningkatan ke Unity 2020 LTS
Peningkatan ke Unity 2018 LTS