Pecah Saat Benturan
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 10 dari 63.
Seberapa keras benturannya? collision.relativeVelocity adalah kecepatan kedua object saat saling mendekat ketika bertemu, dan magnitude-nya adalah kecepatan benturan dalam m/s. Ini adalah selisih kecepatan: mobil yang melaju dengan kecepatan 10 m/s dan menabrak mobil yang melaju searah dengan kecepatan 8 m/s hanya membentur dengan kecepatan 2 m/s, dan kedua mobil merasakan kecepatan benturan yang sama.
Telur ini pecah saat mendarat dengan kecepatan lebih dari crackSpeed. Jika dijatuhkan dari ketinggian 1 m, telur membentur dengan kecepatan sekitar 4.4 m/s (akar kuadrat dari 2 x 9.81 x 1), dan dari ketinggian 2 m dengan kecepatan sekitar 6.3 m/s:
public float crackSpeed = 5f;
void OnCollisionEnter(Collision collision)
{
if (collision.relativeVelocity.magnitude > crackSpeed)
{
Debug.Log("Splat!");
Destroy(gameObject);
}
}Mengapa bukan rb.linearVelocity milik telur? Saat OnCollisionEnter dijalankan, fisika sudah menangani benturan, jadi yang tersisa adalah kecepatan telur setelah benturan, yang hampir nol. relativeVelocity mempertahankan kecepatan benturannya. Ini adalah kecepatan, jadi massa tidak berpengaruh: telur yang berat dan telur yang ringan saat mendarat dengan kecepatan 6 m/s sama-sama melaporkan 6.
Tantangan
MudahBola menggelinding ke arah jendela: panah atas membuatnya menggelinding pelan, sedangkan Space membuatnya menggelinding keras (Bowler.cs, sudah ditulis). Tulis Window.cs. Jendela memiliki strength (10 di Inspector).
- Setiap benturan mengurangi kekuatan jendela sebesar kecepatan benturannya: benturan dengan kecepatan 2 m/s mengurangi
strengthsebanyak 2. - Saat
strengthmencapai 0 atau kurang, jendela pecah: hancurkan jendela.
Tekan Play, gelindingkan beberapa bola pelan lalu satu bola keras, kemudian tekan Periksa.
Coba sendiri
using UnityEngine;
public class Window : MonoBehaviour
{
public float strength = 10f;
// Setiap benturan mengurangi strength sebesar kecepatan benturannya; saat mencapai 0, jendela pecah
}
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