- 21 Nis 2024
- 61
- 2
- 8
Unity ile FPS Oyunu Yapımı Eğitim Serisi - Bölüm 4'e Hoş Geldiniz!
Bu bölümde, mermi izi ve vurma efektleri ekleyerek ateş etme mekaniklerimizi geliştireceğiz. Böylece ateş ettiğimizde görsel bir etki görebileceğiz.
1. Mermi İzi Efekti Eklemek
Mermi izi, ateş ettiğimizde görünen çizgi şeklindeki ışın efektidir. Bu efekt, oyuncuya merminin yönünü ve hızını hissettirir.
Adım 1: Unity'de bir "Line Renderer" kullanarak mermi izi oluşturabiliriz. "Assets" klasöründe sağ tıklayıp "Create > Material" seçeneğine gidin ve mermi izi için bir malzeme oluşturun. Bu malzemeyi "BulletTrail" olarak adlandırın.
Adım 2: Malzemenin Shader özelliğini Unlit > Color olarak ayarlayın ve rengini sarı veya beyaz yapın. Mermi izi olarak gözükmesi için parlak bir renk seçmeniz tavsiye edilir.
Görsel Açıklama: Mermi izi malzemesi için renk ve shader ayarları.
Adım 3: Şimdi "PlayerShooting" script'ine mermi izi efektini ekleyelim. "PlayerShooting" script'ini açın ve aşağıdaki eklemeyi yapın:
Açıklama: Bu kod, mermi izi efektini başlatır ve 0.05 saniye sonra kaybolmasını sağlar. lineRenderer başlangıç ve bitiş pozisyonlarını fps kamera yönünde ayarlar.
---
2. Vurma Efekti Eklemek
Mermi hedefe çarptığında bir vurma efekti eklemek, oyuncuya merminin etkisini gösterir. Bu efekt için bir parçacık sistemi kullanabiliriz.
Adım 1: Unity'nin "Particle System" özelliğini kullanarak bir vurma efekti oluşturabilirsiniz. "Hierarchy" panelinde sağ tıklayıp "Effects > Particle System" seçin. Oluşan parçacık sistemini "HitEffect" olarak adlandırın.
Adım 2: HitEffect'in ayarlarını değiştirerek küçük bir toz veya kıvılcım efekti oluşturun. Start Lifetime'ı 0.2-0.5 arası bir değer yaparak hızlı bir etki oluşturabilirsiniz.
Görsel Açıklama: Parçacık sisteminin vurma efekti ayarları.
Adım 3: HitEffect objesini "Prefabs" klasörüne sürükleyerek prefab haline getirin. Ardından, PlayerShooting script'ine aşağıdaki eklemeyi yapın:
Açıklama: Bu kod, mermi bir objeye çarptığında vurma efektini hit.point konumunda oluşturur ve 0.5 saniye sonra yok eder.
---
3. Geri Tepme Animasyonu Eklemek
Ateş ettiğimizde, silahın geri tepmesi daha gerçekçi bir his yaratır. Bu geri tepme için basit bir animasyon ekleyeceğiz.
Adım 1: "Main Camera" objesini seçin ve Inspector panelinde "Add Component > Animator" seçeneğiyle bir Animator ekleyin. Yeni bir animasyon kontrolcüsü oluşturun ve "GunRecoil" olarak adlandırın.
Adım 2: "GunRecoil" animasyonunu oluşturun ve pozisyon ile rotasyon değerlerini değiştirerek silahın geri teptiği bir animasyon kaydedin.
Görsel Açıklama: Silahın geri tepme animasyonu için pozisyon ve rotasyon ayarları.
Adım 3: Ateş ettiğimizde bu animasyonu tetiklemek için "PlayerShooting" script'ine şu kodları ekleyin:
Not: Animator’da Shoot isimli bir tetikleyici (trigger) oluşturmayı unutmayın. Bu tetikleyici animasyonu başlatacak.
---
Bölüm 4'ün Sonu
Bu bölümde mermi izi, vurma efekti ve geri tepme animasyonunu ekledik. Artık ateş etme mekaniklerimiz görsel olarak daha etkileyici. Bir sonraki bölümde, düşman AI eklemeyi öğreneceğiz!
Bu bölümde, mermi izi ve vurma efektleri ekleyerek ateş etme mekaniklerimizi geliştireceğiz. Böylece ateş ettiğimizde görsel bir etki görebileceğiz.
1. Mermi İzi Efekti Eklemek
Mermi izi, ateş ettiğimizde görünen çizgi şeklindeki ışın efektidir. Bu efekt, oyuncuya merminin yönünü ve hızını hissettirir.
Adım 1: Unity'de bir "Line Renderer" kullanarak mermi izi oluşturabiliriz. "Assets" klasöründe sağ tıklayıp "Create > Material" seçeneğine gidin ve mermi izi için bir malzeme oluşturun. Bu malzemeyi "BulletTrail" olarak adlandırın.
Adım 2: Malzemenin Shader özelliğini Unlit > Color olarak ayarlayın ve rengini sarı veya beyaz yapın. Mermi izi olarak gözükmesi için parlak bir renk seçmeniz tavsiye edilir.
Görsel Açıklama: Mermi izi malzemesi için renk ve shader ayarları.
Adım 3: Şimdi "PlayerShooting" script'ine mermi izi efektini ekleyelim. "PlayerShooting" script'ini açın ve aşağıdaki eklemeyi yapın:
C#:
public LineRenderer lineRenderer;
void Shoot()
{
StartCoroutine(ShootEffect());
// Mevcut raycast kodları
...
}
IEnumerator ShootEffect()
{
lineRenderer.SetPosition(0, fpsCam.transform.position);
lineRenderer.SetPosition(1, fpsCam.transform.position + fpsCam.transform.forward * range);
lineRenderer.enabled = true;
yield return new WaitForSeconds(0.05f);
lineRenderer.enabled = false;
}
Açıklama: Bu kod, mermi izi efektini başlatır ve 0.05 saniye sonra kaybolmasını sağlar. lineRenderer başlangıç ve bitiş pozisyonlarını fps kamera yönünde ayarlar.
---
2. Vurma Efekti Eklemek
Mermi hedefe çarptığında bir vurma efekti eklemek, oyuncuya merminin etkisini gösterir. Bu efekt için bir parçacık sistemi kullanabiliriz.
Adım 1: Unity'nin "Particle System" özelliğini kullanarak bir vurma efekti oluşturabilirsiniz. "Hierarchy" panelinde sağ tıklayıp "Effects > Particle System" seçin. Oluşan parçacık sistemini "HitEffect" olarak adlandırın.
Adım 2: HitEffect'in ayarlarını değiştirerek küçük bir toz veya kıvılcım efekti oluşturun. Start Lifetime'ı 0.2-0.5 arası bir değer yaparak hızlı bir etki oluşturabilirsiniz.
Görsel Açıklama: Parçacık sisteminin vurma efekti ayarları.
Adım 3: HitEffect objesini "Prefabs" klasörüne sürükleyerek prefab haline getirin. Ardından, PlayerShooting script'ine aşağıdaki eklemeyi yapın:
C#:
public GameObject hitEffect;
void Shoot()
{
// Mevcut raycast kodları
if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
{
GameObject impactGO = Instantiate(hitEffect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactGO, 0.5f);
}
}
Açıklama: Bu kod, mermi bir objeye çarptığında vurma efektini hit.point konumunda oluşturur ve 0.5 saniye sonra yok eder.
---
3. Geri Tepme Animasyonu Eklemek
Ateş ettiğimizde, silahın geri tepmesi daha gerçekçi bir his yaratır. Bu geri tepme için basit bir animasyon ekleyeceğiz.
Adım 1: "Main Camera" objesini seçin ve Inspector panelinde "Add Component > Animator" seçeneğiyle bir Animator ekleyin. Yeni bir animasyon kontrolcüsü oluşturun ve "GunRecoil" olarak adlandırın.
Adım 2: "GunRecoil" animasyonunu oluşturun ve pozisyon ile rotasyon değerlerini değiştirerek silahın geri teptiği bir animasyon kaydedin.
Görsel Açıklama: Silahın geri tepme animasyonu için pozisyon ve rotasyon ayarları.
Adım 3: Ateş ettiğimizde bu animasyonu tetiklemek için "PlayerShooting" script'ine şu kodları ekleyin:
C#:
public Animator gunAnimator;
void Shoot()
{
gunAnimator.SetTrigger("Shoot");
// Mevcut raycast kodları
...
}
Not: Animator’da Shoot isimli bir tetikleyici (trigger) oluşturmayı unutmayın. Bu tetikleyici animasyonu başlatacak.
---
Bölüm 4'ün Sonu
Bu bölümde mermi izi, vurma efekti ve geri tepme animasyonunu ekledik. Artık ateş etme mekaniklerimiz görsel olarak daha etkileyici. Bir sonraki bölümde, düşman AI eklemeyi öğreneceğiz!