Unity'de Top Oyunu Nasıl Yapılır
Unity'de top oyunu oluşturmak, oyun geliştirmenin temellerini öğrenmenin harika bir yoludur. Bu eğitimde oyuncunun hedefleri vurmak için topu nişan alıp ateş edebileceği basit bir oyun yaratacağız. Projeyi kurmayı, bir top oluşturup kontrol etmeyi ve hedefleri eklemeyi ele alacağız.
Adım 1: Projeyi Kurma
Öncelikle Unity'i açın ve yeni bir 2D proje oluşturun. Projenize "CannonGame" adını verin. Proje oluşturulduktan sonra ana Unity editör penceresinde olacaksınız.
Adım 2: Topun Oluşturulması
Topun görsel bir temsiline ihtiyacımız var. Topunuz gibi davranacak basit bir dikdörtgen hareketli grafik oluşturabilirsiniz. Bunu yapmak için:
- Hiyerarşi penceresine sağ tıklayın ve Boş Oluştur'u seçin. Adını "Cannon" olarak adlandırın.
- "Cannon" nesnesine sağ tıklayın ve 2D Object -> Sprite seçeneğini seçin. Adını "CannonSprite" olarak adlandırın.
- Inspector penceresinde Sprite alanına tıklayın ve topunuz için bir sprite seçin.
Transform bileşenindeki konumunu (0, -4, 0) olarak ayarlayarak topu ekranın alt kısmına konumlandırın.
Şimdi topu kontrol etmek için bir komut dosyası oluşturun. Assets klasörüne sağ tıklayın, Create -> C# Script seçeneğini seçin ve "CannonController" olarak adlandırın. Kod düzenleyicinizde açmak için komut dosyasına çift tıklayın.
// CannonController.cs
using UnityEngine;
public class CannonController : MonoBehaviour
{
public GameObject cannonballPrefab;
public float shootForce = 700f;
void Update()
{
Aim();
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Aim()
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
transform.up = direction;
}
void Shoot()
{
GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
Rigidbody2D rb = cannonball.GetComponent();
rb.AddForce(transform.up * shootForce);
}
}
Adım 3: Gülleyi Oluşturmak
Topun ateş edebilmesi için gülle oluşturmamız gerekiyor. İşte nasıl:
- Hiyerarşi penceresine sağ tıklayın ve 2D Object -> Sprite seçeneğini seçin. Bunu "Cannonball" olarak adlandırın.
- Inspector penceresinde Sprite alanına tıklayın ve gülleniz için bir sprite seçin.
- Bileşen Ekle seçeneğine tıklayıp Rigidbody2D'u seçerek gülleye bir Rigidbody2D bileşeni ekleyin.
- Bileşen Ekle'a tıklayıp CircleCollider2D'u seçerek gülleye bir CircleCollider2D bileşeni ekleyin.
Daha sonra, bir prefabrik oluşturmak için gülleyi Hiyerarşi'dan Assets klasörüne sürükleyin. Bu prefabrik top tarafından gülle atmak için kullanılacak.
CannonController betiğinin Inspector penceresinde (Cannon nesnesine ekli), CannonballPrefab alanını cannonball prefabrik olarak ayarlayın.
Adım 4: Hedefler Oluşturma
Oyuncunun ateş edebileceği bazı hedefler ekleyelim:
- Hiyerarşi penceresine sağ tıklayın ve 2D Object -> Sprite seçeneğini seçin. Bunu "Target" olarak adlandırın.
- Inspector penceresinde Sprite alanına tıklayın ve hedefiniz için bir sprite seçin.
- Bileşen Ekle'a tıklayıp BoxCollider2D'u seçerek hedefe bir BoxCollider2D bileşeni ekleyin.
Hedefi sağ tıklayıp Çoğalt'u seçerek çoğaltın. Hedefleri ekranın etrafına konumlandırın.
Adım 5: Çarpışmalarla Başa Çıkmak
Bir gülle hedefe çarptığında ne olacağını halletmemiz gerekiyor. Bunu yönetmek için "Target" adlı bir komut dosyası oluşturun:
- Assets klasörüne sağ tıklayın, Create -> C# Script seçeneğini seçin ve "Target" olarak adlandırın.
- Kod düzenleyicinizde açmak için komut dosyasına çift tıklayın.
// Target.cs
using UnityEngine;
public class Target : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Cannonball"))
{
Destroy(gameObject);
}
}
}
Hedef komut dosyasını tüm hedef nesnelere ekleyin. Top mermisi prefabrik yapınızın "Cannonball" etiketine sahip olduğundan emin olun.
Çözüm
Bu adımları takip ederek Unity'de basit bir top oyunu oluşturdunuz. Bir projeyi nasıl oluşturacağınızı, bir top oluşturup kontrol edeceğinizi ve hedefleri nasıl ekleyeceğinizi öğrendiniz. Bu proje, nesne oluşturma, kullanıcı girişi, fizik ve çarpışma tespiti gibi temel oyun geliştirme kavramlarını kapsamaktadır. Puanlama, seviyeler ve farklı hedef türleri gibi özellikler ekleyerek bu oyunu daha da geliştirebilirsiniz. Unity hakkında deneyerek ve daha fazlasını öğrenerek eğlenin!