Menu
CoddyTech

Özet: Modüler Taret

Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 5 / 50.

challenge icon

Görev

Kolay

Test alanının iki taretini parçalardan oluştur. TurretControl.cs zaten her tareti sol ve sağ ok tuşlarıyla döndürüyor, Shell.cs ise mermiyi ileri doğru uçuruyor. Sahnede Turret1'e bir Cannon ve 4 mermili bir Ammo, Turret2'ye ise bir TwinCannon ve 3 mermili bir Ammo verilmiş. Parçaları yaz:

  • Ammo: bir public int shells ve bir public metot bool Take(). Mermi kaldıysa bir mermi kullanır ve true döndürür. Mermi kalmadıysa nesnenin adını ve is empty metnini, örneğin Turret2 is empty şeklinde günlüğe yazar ve false döndürür.
  • Weapon: her zaman bir Ammo bileşeniyle birlikte bulunan soyut bir bileşen; public bir shellPrefab (bir GameObject), public bir float cooldown (Inspector değeri 1 olarak ayarlar) ve public bir metot Pull() içerir. Soğuma süresi sırasında tetiğe basılırsa hiçbir şey olmaz ve mermi kullanılmaz. Aksi takdirde, Take() bir mermi verirse soğuma süresi başlar ve her silahın yazdığı soyut metot olan Fire() çalışır.
  • Cannon, taretin 1 birim önünden bir mermi ateşler. TwinCannon, bir mermilik cephane kullanarak, bu noktanın 0.4 birim solundan ve 0.4 birim sağından iki mermi ateşler. Bir mermi transform.position + transform.rotation * offset konumunda, taretle aynı yöne dönük olarak (transform.rotation) başlar; burada offset, taretin bakış açısından görülen konumu belirtir; örneğin new Vector3(0f, 0f, 1f).
  • TurretControl içinde Space, taretin sahip olduğu Weapon'ın tetiğini çeker.

Play'e bas, her iki taret de boşalana kadar döndürüp ateş et, ardından Check'e bas.

Kendin dene

using UnityEngine;

// Tüm taret silahlarının ortak özellikleri.
public class Weapon : MonoBehaviour
{
}

Unity'de Oyun Mimarisi bölümündeki tüm dersler