CodeBlanks Logo Icon CodeBlanks

Toplama mekanizması

Toplanabilir öğeler için bir pickup scripti yazarsın.

Toplama Mekanizması ve Trigger

Altın, iksir veya anahtar gibi toplanabilir öğelerin oyuncuyu katı bir duvar gibi durdurmaması, oyuncunun içinden geçebilmesi gerekir. Bunun için nesnenin Collider bileşeninde Is Trigger kutucuğu işaretlenir.

// Is Trigger acik olan nesneler carpisma yerine temas bildirir
void OnTriggerEnter(Collider other) {
    if (other.CompareTag("Player")) {
        // Toplama islemini calistir
    }
}

Böylece fiziksel çarpışma tepkisi ortadan kalkar ve temas olayı kodla dinlenebilir hale gelir.

Toplama Olayı ve Destroy

Oyuncu altınla temas ettiğinde OnTriggerEnter çalışır. Karakter etiketi kontrol edilir, skora puan eklenir ve toplanan nesne Destroy(gameObject) ile sahneden kaldırılır.

void OnTriggerEnter(Collider other) {
    if (other.CompareTag("Player")) {
        // Skoru artir ve altini sahneden sil
        Destroy(gameObject);
    }
}

İsteğe bağlı olarak toplama anında bir parçacık efekti veya ses klibi oynatılarak oyuncuya görsel tatmin sağlanır.

Uygulama Altın toplama bildirimi

Bir Start metodu tanımla. İçinde int altinDegeri = 10; tanımla ve konsola "Toplanan altin: " + altinDegeri yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class PickupTester : MonoBehaviour
{
    // Start icinde altinDegeri tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class PickupTester : MonoBehaviour
{
    void Start()
    {
        int altinDegeri = 10;
        Debug.Log("Toplanan altin: " + altinDegeri);
    }
}

Beklenen çıktı

Toplanan altin: 10

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Toplanabilir bir altının fiziksel bir engel gibi oyuncuyu durdurmak yerine içinden geçilebilmesini sağlamak için Collider'da hangi ayar açılmalıdır?

  • Cast Shadows
  • Is Kinematic
  • Static Mesh
  • Is Trigger Doğru cevap

Açıklama: Collider bileşenindeki 'Is Trigger' özelliği açıldığında fiziksel çarpışma engeli kalkar ve nesnenin içinden geçilebilir.

2 Toplanan nesneyi yok et

Soru
Destroy(____);
Cevap
Destroy(gameObject);

Açıklama: Bir scriptin bağlı olduğu nesnenin tamamını sahneden silmek için 'Destroy(gameObject)' çağrılır.

3 Toplama mekanizması kavramları

Kavram Anlamı
Is Trigger Çarpışma yerine temas olayını açar
OnTriggerEnter Tetikleyiciye nesne girdiğinde çalışır
CompareTag Nesnenin etiketini güvenle kontrol eder
Destroy Nesneyi sahneden ve bellekten siler

İleri seviye bölümündeki tüm dersler