Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Isi 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 ke bounce dan friction (baik dinamis maupun statis).
  • Apa pun yang mendarat di permukaan harus memantul dengan nilai bounce penuh dari permukaan, dan apa pun yang meluncur di atasnya harus mendapatkan nilai friction milik 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
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Fisika dan Gameplay