Toplama mekanizması
- Oyun Geliştirme kursu
- İleri seviye
- Ders 51/71
- 4 dk
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
using UnityEngine;
public class PickupTester : MonoBehaviour
{
// Start icinde altinDegeri tanimla ve yazdir
}Örnek çözüm
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
Destroy(____);
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 |