Unity 5.0 fitur upgrade ke PhysX3.3 SDK. Harap berikan blogpost ini tampilan cepat sebelum mengambil tindakan pada proyek 4.x Anda. Harus memberi Anda rasa apa yang diharapkan dari codebase baru: . Harap diingat bahwa PhysX3 tidak 100% kompatibel dengan PhysX2 dan memerlukan beberapa tindakan dari pengguna saat upgrade.
Unity 5.0 fisika dapat diharapkan untuk bekerja hingga 2x lebih cepat daripada dalam versi sebelumnya. Sebagian besar komponen yang Anda akrab dengan masih ada, dan Anda akan menemukan mereka bekerja seperti sebelumnya. Tentu saja, beberapa perilaku tidak mungkin untuk mendapatkan perilaku yang sama dan beberapa hanya aneh yang disebabkan oleh keterbatasan dari basis kode yang telah ada sebelumnya, sehingga kita harus mengambil perubahan. Dua daerah yang mendapatkan perubahan yang paling signifikan adalah komponen kain dan komponen WheelCollider. Kami termasuk bagian dari mereka di bawah ini. Kemudian, ada perubahan yang lebih kecil di seluruh kode fisika yang menyebabkan ketidakcococokan.
Kekuatan adaptif diperkenalkan untuk membantu dengan simulasi tumpukan besar, tetapi ternyata bagus hanya untuk demo. Dalam permainan nyata itu terjadi untuk menyebabkan perilaku yang salah. Anda dapat beralih ke dalam sifat fisika editor: Login Pengaturan proyek -> Fisika -> Kekuatan adaptif yang dapat diaktifkan.
PhysX3 memiliki fitur yang membahas masalah yang sama dan tidak lagi dapat dialihkan karena dianggap sebagai solusi tanpa kekurangan utama.
Anda mungkin ingin tune parameter pegas setelah upgrade.
Gunakan TerrainCollider.sharedMaterial dan TerrainCollider. bahan untuk menentukan bahan fisika untuk terrainPemandangan di tempat kejadian Anda. Terrain GameObject menambahkan pesawat datar besar untuk adegan Anda dan Anda dapat menggunakan jendela Inspektur Terrain untuk menciptakan lanskap rinci. More info
Lihat di Glossary. Cara yang lebih tua untuk mengatur bahan fisika melalui TerrainData tidak akan lagi bekerja. Sebagai bonus, Anda sekarang dapat menentukan bahan fisika medan pada dasar per colliderBentuk tak terlihat yang digunakan untuk menangani tabrakan fisik untuk objek. Seorang sari tidak perlu menjadi bentuk yang sama dengan jala objek - perkiraan kasar sering lebih efisien dan tidak dapat dibedakan dalam gameplay. More info
Lihat di Glossary.
Saat menggunakan kolider senyawa, OnCollisionEnter sekarang disebut sekali per setiap pasangan kontak
Dari saat ini, Anda dapat memicu hanya pada bentuk cembung (sisi PhysX):
Tubuh dinamis (yaitu orang-orang yang memiliki kaku melekat dengan Kinematik = palsu) tidak bisa lagi memiliki sari meshGrafik utama primitif Unity. Mesh membuat sebagian besar dunia 3D Anda. Unity mendukung mesh poligon triangulat atau Quadrangulasi. Nurbs, Nurms, permukaan Subdiv harus dikonversi ke poligon. More info
Lihat di Glossary (batas PhysX).
Jika Anda ingin memiliki collisionstabrakan terjadi ketika mesin fisika mendeteksi bahwa tabrakan dari dua GameObjects membuat kontak atau tumpang tindih, ketika setidaknya satu memiliki komponen kaku dan bergerak. More info
Lihat di Glossary dengan jaring cekung, Anda hanya dapat memilikinya pada tabrakan statis dan badan kinematik
Pengaturan bersama untuk ragdolls kemungkinan akan membutuhkan tweaking.
Saran ini berlaku untuk jointsKomponen fisika yang memungkinkan koneksi dinamis antara komponen Rigidbody, biasanya memungkinkan beberapa tingkat pergerakan seperti engsel. More info
Lihat di Glossary secara umum juga.
Lihat halaman Kestabilan Bersama Dan Ragdoll untuk versi terbaru dari panduan ini.
Hindari sudut kecil "Angular Y Limit" dan "Angular Z Limit". Tergantung pada pengaturan sudut minimum Anda harus sekitar 5 hingga 15 derajat agar stabil. Alih-alih menggunakan sudut kecil mencoba mengatur sudut ke nol. Ini akan mengunci sumbu dan memberikan simulasi yang stabil.
Tetapkan Preprocessing untuk palsu (tidak dicentang). Menonaktifkan preprocessing dapat membantu melawan sendi “meniup”. Sendi dapat "meniup" jika mereka dipaksa ke situasi di mana tidak ada cara yang mungkin untuk memenuhi kendala sendi. Ini dapat terjadi jika tubuh kaku bersama ditarik terpisah oleh geometri tabrakan statis, seperti memijat ragdoll sebagian di dalam dinding.
stabilitas Ragdoll atau peregangan: Jika ragdolls diberikan keadaan ekstrem, seperti memijat sebagian di dalam dinding atau didorong dengan kekuatan besar, pemecah sendi tidak akan menjaga tubuh yang kaku bersama. Ini dapat mengakibatkan peregangan atau “cloud bagian tubuh”. Harap aktifkan proyeksi pada sendi, gunakan "ConfigurableJoint.projectionMode" atau "CharacterJoint.enableProjection".
Jika tubuh terhubung dengan sendi adalah jittering mencoba meningkatkan Edit->Project Settings->Physics->“Solver Iteration Count”. Coba antara 10 atau 20.
Jangan pernah menggunakan akses transformasi langsung dengan badan kinematik yang disambungkan ke tubuh lain. Melakukan begitu melewatkan langkah di mana PhysX menghitung velocities internal tubuh yang sesuai dan sehingga membuat pemecah memberikan hasil yang tidak menyenangkan. Kami telah melihat beberapa proyek 2D menggunakan akses transformasi langsung ke karakter flip melalui mengubah transformasi. arah pada boon akar rig. Ini berperilaku jauh lebih baik jika Anda menggunakan Pindah / Pindahan / Pindahkan.
Mekanisme penguncian yang kami gunakan pada Unity 4 pada dasarnya membuang perubahan rotasi terkunci & mengatur ulang kecepatan sudut sebagai langkah pasca-solver. Ini bekerja sebagian besar baik kecuali bahwa ada masalah dengan tubuh gagal untuk pergi tertidur sebagai pemecahan ingin menyesuaikan rotasi setiap bingkai; dan beberapa kasus terkait yang diperhatikan selama bertahun-tahun. Ketika bekerja pada integrasi PhysX3 kami memanfaatkan fitur baru PhysX 3.3 di mana kita dapat mengatur komponen sepuluhsor inersia tak terbatas untuk derajat rotasi terkunci kebebasan. Ini sekarang didukung dalam pemecahan sehingga tubuh sekarang akan tidur tepat, tetapi karena ini inersia, itu diterapkan dalam koordinat lokal.
WheelCollider baru didukung oleh SDK Kendaraan PhysX3 yang pada dasarnya adalah perpustakaan simulasi kendaraan yang benar-benar baru bila dibandingkan dengan kode yang kami miliki dengan PhysX2.
Baca lebih lanjut tentang WheelCollider baru di sini.
Unity 5 menggunakan pemecahan kain rewritten yang disediakan oleh SDK PhysX baru. Perpecahan kain ini telah dirancang dengan pakaian karakter dalam pikiran, dan merupakan peningkatan yang bagus dibandingkan dengan versi lama dalam hal kinerja dan stabilitas. Unity 5 menggantikan komponen SkinnedCloth dan InteraktifCloth di Unity 4 dengan komponen kain tunggal, yang bekerja sama dengan SkinnedMeshRenderer. Fungsi ini mirip dengan komponen SkinnedCloth sebelumnya, tetapi sekarang dimungkinkan untuk menetapkan sewenang-wenang, mesh non-skin ke SkinnedMeshRenderer, sehingga Anda masih dapat menangani simulasi kain pada mesh acak.
Namun, beberapa fungsi yang tersedia di Interaktifan lama sekarang tidak lagi didukung oleh versi baru PhysX karena sulit untuk menerapkan ini dengan kinerja yang baik. Khusus: