Pantulan dan Gesekan
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 12 dari 63.
Cara collider memantul dan meluncur berasal dari PhysicsMaterial (nama di Unity 6; versi yang lebih lama menyebutnya PhysicMaterial). bounciness berkisar dari 0 (tanpa pantulan) hingga 1 (mempertahankan seluruh kecepatannya). dynamicFriction memperlambat benda yang sedang meluncur, dan staticFriction menentukan seberapa kuat benda yang diam harus didorong sebelum mulai meluncur. Collider tanpa material bertindak seolah memiliki friction 0.6 dan bounciness 0. Bola super ini memberi collider-nya sendiri material yang memantul:
void Start()
{
PhysicsMaterial mat = GetComponent<Collider>().material; // salinan milik collider ini
mat.bounciness = 0.9f;
mat.bounceCombine = PhysicsMaterialCombine.Maximum;
}Satu kontak melibatkan dua collider, jadi Unity menggabungkan kedua nilainya. Setiap material memilih caranya, dengan bounceCombine untuk bounciness dan frictionCombine untuk friction, dan masing-masing memilih satu dari empat mode: Average (default), Minimum, Multiply, atau Maximum. Jika kedua collider meminta mode yang berbeda, mode yang posisinya lebih akhir dalam daftar itu yang berlaku. Di lantai tanpa material, Average akan memberi bola nilai (0.9 + 0) / 2 = 0.45. Dengan Maximum, bola mempertahankan 0.9 dari kecepatannya pada setiap pantulan, yaitu 0.9 x 0.9 = 81% dari tingginya, karena tinggi sebanding dengan kuadrat kecepatan.
.material memberi collider ini salinan materialnya sendiri, jadi perubahan hanya memengaruhi collider itu. .sharedMaterial adalah aset material itu sendiri, yang digunakan bersama oleh setiap collider yang memakainya, dan nilainya adalah null pada collider yang tidak pernah diberi material.
Tantangan
MudahIsi playground dengan permukaannya. Skrip Surface dipasang pada Trampoline biru (bounce 0.8, friction 0.6) dan pada jalur Ice (bounce 0, friction 0.1). Bola dan peti tidak memiliki material sendiri.
- Di
Start(), atur material collider ini sendiri kebouncedanfriction(baik dinamis maupun statis). - Apa pun yang mendarat di permukaan harus memantul dengan nilai
bouncepenuh dari permukaan, dan apa pun yang meluncur di atasnya harus mendapatkan nilaifrictionmilik permukaan itu sendiri, bukan campuran dengan nilai 0.6 dari benda yang tidak memiliki material.
Tekan Play untuk melihat bola memantul, lalu Check: peti juga akan meluncur melintasi es.
Coba sendiri
using UnityEngine;
public class Surface : MonoBehaviour
{
public float bounce = 0f;
public float friction = 0.6f;
void Start()
{
// Berikan collider ini material tersendiri dengan pantulan dan gesekan
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Fisika dan Gameplay
1Rigidbody
Gravitasi dan MassaDorong dengan AddForceMelompat dengan ImpulsFixedUpdate untuk FisikaKecepatanBenda KinematikRingkasan: Landasan Peluncur2Tabrakan
OnCollisionEnterApa yang Kutabrak?Pecah Saat BenturanBerdiri di Atas TanahPantulan dan GesekanBentuk ColliderRangkuman: Dinding yang Bisa Hancur