Çarpınca Kırıl
Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 10 / 63.
Darbe ne kadar şiddetliydi? collision.relativeVelocity, iki nesnenin karşılaştıkları anda birbirlerine doğru ne hızla yaklaştıklarını gösterir ve magnitude değeri darbe hızını m/s cinsinden verir. Bu, hızların farkıdır: 10 m/s hızla giden bir araba, aynı yönde 8 m/s hızla giden bir arabaya çarptığında yalnızca 2 m/s hızla çarpar ve her iki araba da aynı darbe hızını görür.
Bu yumurta, yere crackSpeed değerinden daha hızlı çarptığında kırılır. 1 m yükseklikten bırakıldığında yaklaşık 4.4 m/s hızla çarpar (2 x 9.81 x 1'in karekökü); 2 m yükseklikten bırakıldığında ise yaklaşık 6.3 m/s hızla çarpar:
public float crackSpeed = 5f;
void OnCollisionEnter(Collision collision)
{
if (collision.relativeVelocity.magnitude > crackSpeed)
{
Debug.Log("Splat!");
Destroy(gameObject);
}
}Neden yumurtanın kendi rb.linearVelocity değeri değil? OnCollisionEnter çalıştığında fizik çarpışmayı zaten işlemiş olur; dolayısıyla yumurtanın hızı, çarpışmadan sonra geriye kalandır ve sıfıra yakındır. relativeVelocity darbenin kendi hızını korur. Bu bir hız olduğundan kütlenin etkisi yoktur: 6 m/s hızla yere inen ağır bir yumurta da hafif bir yumurta da aynı 6 değerini verir.
Görev
KolayTop pencereye doğru yuvarlanır: yukarı ok tuşu onu yavaşça, Space ise hızlıca yuvarlar (Bowler.cs, zaten yazıldı). Window.cs dosyasını yaz. Pencerenin bir strength değeri vardır (Inspector'da 10).
- Her çarpma, pencerenin gücünü darbe hızı kadar azaltır: 2 m/s hızındaki bir çarpma,
strengthdeğerini 2 azaltır. strength0'a veya daha düşük bir değere ulaştığında pencere kırılır: pencereyi yok et.
Play'e bas, birkaç topu yavaşça ve ardından bir topu hızlıca yuvarla, sonra Check'e bas.
Kendin dene
using UnityEngine;
public class Window : MonoBehaviour
{
public float strength = 10f;
// Her darbe, çarpma hızını strength değerinden düşürür; değer 0 olduğunda pencere parçalanır
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Fizik ve Oynanış bölümündeki tüm dersler
1Rigidbody
Yerçekimi ve KütleAddForce ile İtmeDürtüyle ZıplamaFizik için FixedUpdateHızKinematik CisimlerTekrar: Fırlatma Rampası2Çarpışmalar
OnCollisionEnterNeye Çarptım?Çarpınca KırılYerde DurmakSekme ve SürtünmeCollider ŞekilleriTekrar: Kırılabilir Duvar