Unity'de C# ile Canon Oyunu Oluşturma

Bu eğitimde Unity ve C# kullanarak basit bir Canon oyunu oluşturacağız. Bir Unity projesi oluşturmanın, oyun nesneleri oluşturmanın, kullanıcı girdilerini işlemenin ve oyun mekaniklerini uygulamanın temellerini öğreneceksiniz.

Ön koşullar

Devam etmek için aşağıdakilere sahip olduğunuzdan emin olun:

  • Unity bilgisayarınızda yüklü (sürüm 20xx.x veya üzeri)
  • Unity'nin arayüzü ve sahne kurulumu hakkında temel anlayış
  • C# programlama diline aşinalık

Projenin Kurulumu

Yeni bir Unity projesi kurarak başlayalım:

  1. Unity Hub'ı açın ve yeni bir proje oluşturmak için Yeni tuşuna tıklayın.
  2. Bir şablon seçin (3D veya 2D) ve projenize bir ad verin (örn. CanonGame).
  3. Projeyi oluşturmak için Oluştur'a tıklayın.

Canon GameObject'i oluşturma

Şimdi sahnemizde Canon nesnesini oluşturacağız:

  1. Yeni bir GameObject oluşturmak için Hiyerarşi panelinde sağ tıklayın ve Boş Oluştur seçeneğini seçin.
  2. GameObject'i "Canon" olarak yeniden adlandırın.
  3. Hiyerarşide "Canon"'a sağ tıklayın ve 3D Nesne -> Silindir'u seçerek kanonumuz için bir silindir şekli oluşturun.
  4. Silindiri bir kanona benzeyecek şekilde konumlandırın ve ölçeklendirin.

C# ile Canon Script Yazımı

Şimdi kanonu kontrol edecek bir script yazalım:

  1. Proje panelinde "Scripts" adında yeni bir klasör oluşturun.
  2. "Scripts" klasörüne sağ tıklayın ve Oluştur -> C# Script seçeneğini seçin.
  3. Komut dosyasına "CanonController" adını verin.
  4. Tercih ettiğiniz kod düzenleyicide açmak için betiğe çift tıklayın.
using UnityEngine;

public class CanonController : MonoBehaviour
{
    // Variables for canon rotation and firing logic

    void Start()
    {
        // Initialization code
    }

    void Update()
    {
        // Update code (e.g., check for user input)
    }
}

Canon'a İşlevsellik Ekleme

Kanonu döndürmek ve ateşlemek için işlevsellik ekleyelim:

  1. CanonController komut dosyasında, kanonun dönüşünü ve tetiklenmesini kontrol edecek değişkenleri bildirin.
  2. Güncelleme yönteminde, kanonu sola ve sağa döndürmek için kullanıcı girişini yönetin.
  3. Kuralı ateşlemeyi idare edecek bir yöntem ekleyin (örneğin, bir gülleyi başlatmak).
using UnityEngine;

public class CanonController : MonoBehaviour
{
    // Define variables for canon rotation speed
    public float rotationSpeed = 5f;

    // Define variables for cannonball prefab and firing position
    public GameObject cannonballPrefab;  // Assign in Unity Editor
    public Transform firePoint;  // Assign fire point transform in Unity Editor

    void Update()
    {
        // Handle canon rotation based on user input
        float horizontalInput = Input.GetAxis("Horizontal");
        transform.Rotate(Vector3.up, horizontalInput * rotationSpeed * Time.deltaTime);

        // Handle canon firing when spacebar is pressed
        if (Input.GetKeyDown(KeyCode.Space))
        {
            FireCanon();
        }
    }

    void FireCanon()
    {
        // Check if cannonball prefab and fire point are assigned
        if (cannonballPrefab != null && firePoint != null)
        {
            // Instantiate a cannonball at the fire point position and rotation
            GameObject cannonball = Instantiate(cannonballPrefab, firePoint.position, firePoint.rotation);
            
            // Add force to the cannonball (example: forward direction with speed)
            float cannonballSpeed = 10f;
            cannonball.GetComponent<Rigidbody>().velocity = firePoint.forward * cannonballSpeed;
        }
        else
        {
            Debug.LogError("Cannonball prefab or fire point is not assigned.");
        }
    }
}

Oyunu Test Etme ve Oynama

Şimdi Canon oyunumuzu test edip oynayalım:

  1. Komut dosyasını kaydedip Unity'e geri dönün.
  2. CanonController komut dosyasını "Canon" GameObject'in Inspector paneline sürükleyerek "Canon" GameObject'e ekleyin.
  3. Oyunu çalıştırmak için Unity'deki Play butonuna basın.
  4. Topu döndürmek için ok tuşlarını veya A/D tuşlarını kullanın.
  5. Topu ateşlemek için Boşluk tuşuna basın (bu işlevi uygulamak, betiğinize bağlı olarak isteğe bağlıdır).

Çözüm

Tebrikler! Unity'de C# kullanarak basit bir Canon oyunu oluşturdunuz. Bir Unity projesini nasıl oluşturacağınızı, GameObjects oluşturmayı, C#'ta komut dosyaları yazmayı ve temel oyun mekaniklerini nasıl uygulayacağınızı öğrendiniz. Buradan oyununuzu daha da genişletebilir ve geliştirebilirsiniz.