Meydan okuma 4: Çarpışma bildirimi
- Oyun Geliştirme kursu
- Başlangıç
- Ders 82/83
- 5 dk
OnCollisionEnter ile çarpışma bildiren C# scripti yazarsın.
Meydan okuma 4: Çarpışma bildirimi
Fizik motorunda iki katı Collider temas ettiğinde OnCollisionEnter geri çağrım metodu tetiklenir. Bu metot çarpışılan cismin adı, darbe noktası ve hız verilerini Collision parametresiyle script'e sunar.
void OnCollisionEnter(Collision collision) {
Debug.Log("Çarpışılan nesne: " + collision.gameObject.name);
}Düşmana çarpma, mermi isabeti veya duvara toslama senaryolarında oyun tepkileri bu fonksiyon içinde başlatılır.
Uygulama Çarpışılan engeli yazdır
obstacle değişkenine "Obstacle" değerini ata ve ekrana Collision: Obstacle yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// obstacle değişkenini tanımlayıp çarpışmayı yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string obstacle = "Obstacle";
Console.WriteLine("Collision: " + obstacle);
}
}Beklenen çıktı
Collision: Obstacle
Uygulama Hedef ve engel türünü yazdır
target değişkenine "Spike", type değişkenine "Hazard" ata. Ekrana Hit: Spike | Type: Hazard yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// target ve type değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string target = "Spike";
string type = "Hazard";
Console.WriteLine("Hit: " + target + " | Type: " + type);
}
}Beklenen çıktı
Hit: Spike | Type: Hazard
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 OnCollisionEnter fonksiyonuna Unity tarafından iletilen Collision parametresi ne tür bilgiler barındırır?
- Çarpışılan nesneyi, temas noktalarını ve darbe şiddetini Doğru cevap
- Yalnızca ekran kartının anlık sıcaklık ve bellek durumunu
- Projedeki tüm ses dosyalarının toplam çalma süresini
- Sadece oyunun o anki kare hızı (FPS) sayısını
Açıklama: Collision nesnesi temas eden GameObject referansı, temas yüzeyleri ve temas hızını içeren kapsamlı fizik bilgisidir.
2 Çarpışma parametre tipini belirt
void OnCollisionEnter(____ collision)
void OnCollisionEnter(Collision collision)
Açıklama: OnCollisionEnter metodu çarpışma verilerini Collision sınıfı türünden bir parametre olarak kabul eder.
3 Çarpışma bildirim ögeleri
| Kavram | Anlamı |
|---|---|
OnCollisionEnter |
İlk temasta çalışan fizik metodu |
Collision |
Temas ve nesne verisi taşıyan sınıf |
gameObject.name |
Nesnenin Hierarchy'deki adı |
Debug.Log |
Çarpışma anında konsola bildirim yazar |