C# ve Unity ile Oyun Geliştirmek

Unity: 2D ve 3D Oyun Geliştirme Platformu

Unity, oyun geliştiricilerin 2D ve 3D oyunlar üretmek için kullanabileceği popüler bir oyun geliştirme platformudur. Unity Technologies tarafından geliştirilen bu yazılım, farklı platformlarda (bilgisayarlar, mobil cihazlar, konsollar) çalışabilen zengin ve etkileyici oyun deneyimleri sunmak için geniş bir araç ve özellik seti sunar. Unity'nin kullanıcı dostu arayüzü ve güçlü motoru, profesyonel geliştiricilerden acemi programcılara kadar her seviyeden geliştiricinin yaratıcılığını ön plana çıkarır.

Tarihçe

Unity, ilk kez 2005 yılında Danimarkalı geliştirici Nicholas Francis ve İsveçli geliştirici David Helgason tarafından "Over the Edge Entertainment" adı altında kurulan bir şirketin parçası olarak hayata geçti. İlk başta, sadece Mac OS X platformunda çalışan bir oyun geliştirme aracı olarak tasarlanmıştı. Daha sonra 2007 yılında Unity Technologies olarak adlandırılan bir şirket olarak ayrıldı ve aracın adı "Unity" olarak değiştirildi.

Unity'nin en önemli kilometre taşlarından biri, 2012 yılında Unity 4 sürümünün çıkması oldu. Bu sürümle birlikte 2D oyun geliştirme araçları güncellendi ve geliştiriciler artık 2D oyunları daha kolay bir şekilde oluşturabiliyorlardı. Ardından Unity 5 (2015) ile birlikte grafik kalitesi ve performansı artırıldı ve yeni özellikler eklendi.

Özellikler ve Kullanım Alanları

1. Çapraz Platform Desteği

Unity, geliştirilen oyunların farklı platformlarda çalışmasını sağlayan çapraz platform desteğine sahiptir. Bu, oyunları kolayca Windows, macOS, Linux, iOS, Android, PlayStation, Xbox ve diğer platformlara yayınlayabilme imkanı sunar.

2. Script Desteği

Unity, oyunların mantığı ve davranışlarını belirlemek için C#, JavaScript (eski sürümlerde) ve Unity'nin kendi dili olan UnityScript'i kullanır. C#, güçlü bir programlama dilidir ve geliştiricilere oyunlarında karmaşık özellikler eklemek için yetenekli bir araç sunar.

3. Asset Store

Unity Asset Store, geliştiricilere oyunlarına kolayca ekleyebilecekleri hazır varlıklar (assets) sağlayan bir mağazadır. 3B modeller, ses efektleri, materyaller, arayüz öğeleri ve daha pek çok hazır varlık, geliştiricilerin işini kolaylaştırır ve zaman kazandırır.

4. 2D ve 3D Desteği

Unity, hem 2D hem de 3D oyunlar geliştirmek için kullanılabilir. 2D özellikleri sayesinde platform oyunları, hızlı arcade tarzı oyunlar ve bulmaca oyunları oluşturmak mümkündür. Aynı şekilde, güçlü 3D grafik yetenekleri sayesinde açık dünya oyunları, simülasyonlar ve çok daha karmaşık oyunlar tasarlamak mümkündür.

5. Gelişmiş Fizik Motoru

Unity'nin gelişmiş fizik motoru, nesnelerin gerçekçi bir şekilde davranmasını sağlar. Örneğin, objelerin çarpışma ve itme tepkileri, yerçekimi etkisi gibi fizik kuralları otomatik olarak işlenir.

6. Animasyon ve Parçacık Sistemi

Oyunculara canlı ve etkileyici görsel deneyimler sunmak için Unity, zengin bir animasyon ve parçacık sistemi içerir. Animasyonlar, karakterlerin ve nesnelerin akıcı bir şekilde hareket etmesini sağlarken, parçacık efektleri de ateş, duman, su ve patlama gibi çeşitli efektleri oluşturur.

Unity, oyun geliştirme alanında güçlü ve etkileyici deneyimler sunmak isteyenler için mükemmel bir seçenektir. Hem profesyonel geliştiriciler hem de bağımsız oyun yapımcıları, Unity'nin kullanıcı dostu arayüzü ve geniş özellik seti sayesinde yaratıcılıklarını sınırlamadan oyunlarını hayata geçirebilirler. Ayrıca, Unity'nin aktif topluluğu ve destek ekibi, kullanıcıların sorularını yanıtlamak ve yardım etmek için her zaman hazır durumdadır. Unity, oyun dünyasında adını sürekli olarak duyuran ve gelecekte daha da büyümesi beklenen bir platform olarak kendini kanıtlamıştır.

KURULUM VE KODLAMAYA BAŞLAYALIM

1) Visual Studio kurulu değilse indirip kuruyoruz. Kurulum yaparken Unity ile oyun geliştirme özelliğini ekliyoruz. Visual Studio kurulu ise, arama çubuğuna Visual Studio Installer yazıp, yüklü olan sürümü değiştirip, Unity özelliğini ekliyoruz.

2) Proje Hazırlığı

  • Unity Hub'dan veya Unity'nin resmi web sitesinden en son sürümü indirin ve yükleyin.
  • Unity'nin son sürümünü açın ve yeni bir 2D proje oluşturun.
  • Proje dosyasını "RockPaperScissors" gibi uygun bir isimle kaydedin.

3) Oyun Sahnesi Hazırlığı

  • Sahneye, oyuncu ve bilgisayarın seçimini temsil edecek nesneler ekleyin.
  • Oyuncu seçimini yapmak için aşağıdaki düğmeler veya dokunmatik kontrolleri ekleyin.
  • Bir tane canvas oluşturup içerisine, 1 adet text ve 3 adet button ekleyin.
  • Canvas'a GameController.cs'i component olarak ekleyin.
  • Canvas GameController componentindeki resultText'e eklediğiniz text objesini sürükleyip bırakın.
  • Canvas'daki button onclick eventlerine Canvas'ı sürükleyip, function olarak PlayerChoice 0 1 2 olarak sırayla ekleyin.

4) Script Oluşturma

GameController.cs

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class GameController : MonoBehaviour
{
    public TextMeshProUGUI resultText;
    public GameObject rock, paper, scissors;
    private int playerChoice;
    private int computerChoice;
    private string[] texts = new string[3] { "TAŞ", "KAĞIT", "MAKAS" }; 
    void Start()
    {
        resultText.text = "SEÇİMİNİ YAP!";
    }
    public void PlayerChoice(int choice)
    {
        playerChoice = choice;
        ComputerChoice();
        CheckResult();
    }

    void ComputerChoice()
    {
        computerChoice = Random.Range(0, 3);
    }

    void CheckResult()
    {
        if (playerChoice == computerChoice)
        {
            resultText.text = "BERABERE";
        }
        else if ((playerChoice == 0 && computerChoice == 2) ||
                 (playerChoice == 1 && computerChoice == 0) ||
                 (playerChoice == 2 && computerChoice == 1))
        {
            resultText.text = "KAZANDIN!\n" + texts[playerChoice] + "-" + texts[computerChoice];
        }
        else
        {
            resultText.text = "KAYBETTİN!\n" + texts[playerChoice] + "-" + texts[computerChoice];
        }
    }
}

Bu, çok basit bir "Taş Kağıt Makas" oyunu projesidir. Daha fazla özellik ekleyerek veya grafikleri iyileştirerek oyunu daha ilginç hale getirebilirsiniz.

Github Proje Linki: AyazDuru.Unity.Samples.RockPaperScissors

Sağlıcakla kalın..

Yorumlar kapalı