SON GÜNCELLEME: 6 Ağustos 2014 (Çeviri tamamlandı!)

Hepinize merhaba,

Uzun süredir güncellenmeyen sitemi bu proje ile güncellemiş olacağım. Proje, Unity3D ile C# dilini kullanarak basit bir TPS zombi shooter oyunu yapmak.

Ders toplamda 17 dersten oluşmaktadır ve 319 sayfa uzunluğundadır. Dersi anlamak için daha önceden Unity’de programlama deneyiminizin olması gerekiyor! Eğer programlama deneyiminiz yoksa çok ama çok iyi bir araştırmacı olmanız ve derste üzerinde durulmayan komutları kendi başınıza öğrenmeniz gerekiyor. Ben bazı yerlerde çevirmen eklemeleri yaptım ama bunun yetersiz olduğu durumlar olacaktır.

Yazar: Ferdinand Joseph Fernandez

Çeviri: Süleyman Yasir Kula

Orijinal Kaynak: http://forum.unity3d.com/threads/unity-lesson-1-draft.103421/

Derste Adı Geçen Winrar Arşivi: https://www.dropbox.com/sh/26ogv2dfvwy4o10/AAAniN_NxQNpkyleAdXP0ucja?dl=0&preview=LessonAssets.zip (Alternatif link)

Dersin Bitmiş Hali (Unity Projesi): https://www.mediafire.com/file/h15dv8k3uokw3y9/TheGame.rar/file

Bölüm 1 (Unity’e Giriş): https://www.dropbox.com/s/x8w5r9juitfdjlw/B%C3%B6l%C3%BCm1.pdf

Bölüm 2 (Basit Bir Level Tasarımı): https://www.dropbox.com/s/i99g3yp7fsmgpdy/B%C3%B6l%C3%BCm2.pdf

Bölüm 3 (Script Yazmaya Giriş): https://www.dropbox.com/s/wokrrjnih0ddea0/B%C3%B6l%C3%BCm3.pdf

Bölüm 4 (Player Scriptine Giriş): https://www.dropbox.com/s/pb09f1fnpz5zeh8/B%C3%B6l%C3%BCm4.pdf

Bölüm 5 (Kamera Scripti): https://www.dropbox.com/s/fzc7isdd7xlto66/B%C3%B6l%C3%BCm5.pdf

Bölüm 6 (Düşman Yapay Zekasına Giriş): https://www.dropbox.com/s/rym0706c08lac2q/B%C3%B6l%C3%BCm6.pdf

Bölüm 7 (Prefab Sistemi): https://www.dropbox.com/s/52q257peaweekhl/B%C3%B6l%C3%BCm7.pdf

Bölüm 8 (Düşmana Hasar Vermek): https://www.dropbox.com/s/lpdchq4312ti9fh/B%C3%B6l%C3%BCm8.pdf

Bölüm 9 (3D Modeller ve Animasyonlar): https://www.dropbox.com/s/1833xiwhtf57ghf/B%C3%B6l%C3%BCm9.pdf

Bölüm 10 (Ragdoll Sistemi): https://www.dropbox.com/s/c0ldjuqa9v9kna2/B%C3%B6l%C3%BCm10.pdf

Bölüm 11 (Düşmanın Hasar Vermesi): https://www.dropbox.com/s/exe9z5kzte78jt1/B%C3%B6l%C3%BCm11.pdf

Bölüm 12 (Düşmanların Spawn Olması): https://www.dropbox.com/s/r5u5o7nzn4h3im9/B%C3%B6l%C3%BCm12.pdf

Bölüm 13 (Oyunu Kazanmak): https://www.dropbox.com/s/j0bhqmsod7j3dyy/B%C3%B6l%C3%BCm13.pdf

Bölüm 14 (Ana Menü Oluşturmak): https://www.dropbox.com/s/wairefu2vyzzinv/B%C3%B6l%C3%BCm14.pdf

Bölüm 15 (Görsel ve Ses Efektleri Eklemek): https://www.dropbox.com/s/nfqdg1ctqpokiqt/B%C3%B6l%C3%BCm15.pdf

Bölüm 16 (Düşmanın Sağlık Paketi Düşürmesi): https://www.dropbox.com/s/2agaksvntmdrh67/B%C3%B6l%C3%BCm16.pdf

Bölüm 17 (Oyuna Roketatar Eklemek): https://www.dropbox.com/s/5txcxowr8crufry/B%C3%B6l%C3%BCm17.pdf


Bu döküman tamamen ücretsiz olarak sunulmaktadır ve kesinlikle hiçbir şekilde parayla satılamaz!
Dökümanın paylaşılması durumunda lütfen alıntı yaptığınızı belirtin!
İyi okumalar!


32 yanıt

  1. Ferhat Avatar
    Ferhat

    Hocam emeğinize sağlık üzerinden çok zaman geçmiş olsada çok çok faydalı bir kaynak. Orjinal sitesinde bile konu güncellenmiyor sizin sitenizde hala daha kaynaklar güncel, linkler aktif. Çeviriniz için emeğiniz için tekrar tekrar teşekkürler.

    1. yasirkula Avatar

      Rica ederim 🙂

      1. aykitap ve kırtasiye Avatar

        baba paylaştığın için teşekur ederim eski olsada şimdi bunu çıktı haline getirip okuyacağım sonrada video izleyip yapmaya başlayacağım herşey için teşekur ederim,

      2. yasirkula Avatar

        Rica ederim 🙂

  2. Yasin Avatar
    Yasin

    hocam oyunu açamıyorum acaba son halini nerden bulacağım.

    1. yasirkula Avatar

      “Dersin Bitmiş Hali”nde link bulunmakta. İndirdiğiniz arşivi bir klasöre çıkarıp o klasörü Unity ile açmanız lazım.

  3. furkan Avatar
    furkan

    Hocam merhaba projenin bitmiş halinde objeler yok düzletme ihtimaliniz var mi?

    1. yasirkula Avatar

      Assets/TheGame/Scenes/MainScene.unity sahnesini açmanız lazım. Şimdi test ettiğimde bir sıkıntı görmedim.

  4. zehra Avatar
    zehra

    hocam link çalışmıyor yine son hali yok atabilir misiniz

    1. yasirkula Avatar

      Linki güncelledim.

      1. zehra Avatar
        zehra

        teşekkürler hocam

  5. salih Avatar
    salih

    merhabalar
    ben ders 10 kadar geldim fakat bazı noktaların hatalar alıyorum
    özellikle player ı öldürdüğümde ekrandan kayboluyor ragdollnu herşeyini yaptım
    acaba sizde karekterin assetini isteyebilirmiyim
    çeviriler düzenlemeler 10 numara eline sağlık kardeşim

    1. yasirkula Avatar

      Oyunun son halini şuradan indirebilirsiniz: https://gofile.io/d/1CZtnC. Elimde oyunun 10. dersteki hali yok ama umarım son hali işinize yarar.

      1. salih Avatar
        salih

        çok teşşekür ederim eline sağlık

      2. Ceyda Avatar

        Hocam dosya yok diyor ama

      3. yasirkula Avatar

        Şimdi linki güncelledim.

  6. Yasir Avatar
    Yasir

    public class RaycastTest : MonoBehaviour {
    Transform cameraTransform;
    Vector3 cameraPosition;
    Vector3 cameraDirection;

    void Start ()
    {
    GameObject camera = GameObject.FindGameObjectWithTag(“mainCamera”);
    cameraTransform = camera.transform;
    cameraPosition = cameraTransform.position;
    cameraDirection = cameraTransform.forward;

    }

    void Update ()
    {
    if(Input.GetButtonDown(“Fire1”))
    {
    RaycastHit info;
    Physics.Raycast(cameraPosition, cameraDirection,out info, 99);

    Health enemyHealth = info.transform.GetComponent();
    if(enemyHealth!=null)
    {
    enemyHealth.Damage(50);
    }
    }

    }
    }

    Hocam Raycast çalışmıyor sebebi nedir?

    1. yasirkula Avatar

      Kamera hareketliyse şu kodu kullanın: Physics.Raycast(cameraTransform.position, cameraTransform.forward,out info, 99);. Ayrıca kameranızın tag’i eğer “mainCamera” değil de “MainCamera” ise, FindGameObjectWithTag’i de “MainCamera” yapın. Hâlâ sıkıntı varsa konsolda bir hata mesajı var mı kontrol edin.

  7. SERDAR Avatar
    SERDAR

    Eline sağlık

  8. Yasir Avatar
    Yasir

    Merhabalar hocam. Ben bu motorun yanında birde grafik tasarım programı öğrenmek istiyorum. Kafamdaki oyunda atmosfer önemli ve bunu hangi programla sağlarım yahut unity bu konuda bana yardımcı oluyor mu?

    1. yasirkula Avatar

      Sanırım ücretsiz en popüler 3D modelleme programı Blender diyebiliriz. Ücretli olarak ise 3ds Max ve Autodesk Maya programları oldukça popüler. Unity’de modelleme yapmak için ProBuilder diye bir plugin bulunmakta ancak bununla insan vücudu gibi yumuşak yüzeyler modellemek, saydığım programlara nazaran daha zor olabilir.

      1. Yasir Avatar
        Yasir

        Tamam hocam sağolun

  9. Nurullah Ertaş Avatar
    Nurullah Ertaş

    Bu konu güncelmidir acaba? eposta yoluyla lütfen geri dönüş yapabilirmisiniz?

    Önerdiğiniz video veya başka kaynak varsa lütfen eposta yoluyla geri dönüş yapın.

    ertas73emrulla@gmail.com

    1. yasirkula Avatar

      Bu dersi yazdıktan sonra güncellemedim ama içerik bakımından güncel Unity sürümleri ile hemen hiç bir farkı olmaması lazım. Daha fazla yerli/yabancı ders için Udemy’e ve şu konuya göz atabilirsiniz: https://yasirkula.com/2011/07/12/unity-3d-icin-ders-arayanlar-buraya-guncel/

  10. prodrmani Avatar
    prodrmani

    Hocam ders 9 da Player dosyasındaki player’ın animator componentindeki controller değişmiyor. Nasıl yapabilirim?

    1. yasirkula Avatar

      “Create-Animator Controller” ile oluşturduğunuz Animator Controller’ı sürükle bırak yaparak player’ın Animator component’indeki Controller değişkenine değer olarak verebilmeniz lazım. Yanlış bir şey sürüklemediğinizden emin olun. Bir hata alıyorsanız hata mesajını paylaşabilirsiniz. En kötüsü Controller değişkeninin sağındaki ufak yuvarlak ikona tıklayarak, Animator Controller’ı elle seçebilirsiniz.

  11. Fatih Ceb Avatar
    Fatih Ceb

    merhaba ustam bu link bende hata veriyor bunu nereden ve nasıl bulabilirim
    https://dl.dropboxusercontent.com/u/25260770/UnityLessons/LessonAssets.zip?dl

    1. yasirkula Avatar

      “Derste Adı Geçen Winrar Arşivi” linkerinden birini kullanabilirsiniz.

  12. Murat Gökak Avatar
    Murat Gökak

    Merhaba yasir abi.Benim için 3d zor olduğu için (tek bir kişiyim) bana çok zor geliyor.Sizden tek ricam bunun birde 2d olanını yapmanız.Sadece benim için değil,başkaları içinde lazım.Ben aslında game maker isimli oyun motorunda iyice tecrübeliyim ama oda bir yere kadar yaani.

    1. yasirkula Avatar

      Aslında 2D oyunlar için Game Maker (eğer aşinaysanız) bence daha mantıklı. Ama sanırım siz Unity’nin fizik, partikül vs. özelliklerinden faydalanmak istiyorsunuz. 2D için yakın zamanda bir ders fikrim yok açıkçası, sadece öncelerden paylaştığım eski ve basit bir Flappy Bird dersim vardı o kadar. O yüzden bu konuda internetteki diğer derslere odaklanmanızı öneririm. Ama bir sorunuz olduğunda sormaktan çekinmeyin tabi ki.

  13. Murat Gökak Avatar
    Murat Gökak

    merhaba yasir abi,ben 2d oyun yapıyorum(unity 5 ile).Karakter animasyonlarını yapmaya çalışıyorum.Ben a’ya veya D’ye bastığımda animasyon başlıyor,ama elimi çektiğimde,(GetKeyUp),karakter animasyonu oynamaya devam ediyor.İşte kodlar.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class Karakter2 : MonoBehaviour {

    public float hiz;
    public Animator anim;
    public bool idle, run;

    void Start() {
    hiz = 4.5f;
    idle = true;
    run = false;
    }

    // Update is called once per frame
    void Update() {
    AnimasyonKontrolleri();
    if (Input.GetKey(KeyCode.A))
    {
    transform.position -= new Vector3(Time.deltaTime * hiz, 0, 0);
    transform.localScale = new Vector3(-1, 1, 1);
    run = true;
    idle = false;
    }
    if (Input.GetKey(KeyCode.D))
    {
    transform.position += new Vector3(Time.deltaTime * hiz, 0, 0);
    transform.localScale = new Vector3(1, 1, 1);
    run = true;
    idle = false;
    }
    if (Input.GetKeyUp(KeyCode.D) || Input.GetKeyUp(KeyCode.A))
    {
    run = false;
    idle = true;
    }
    }
    public void AnimasyonKontrolleri()
    {
    if (idle)
    anim.SetBool(“Idle”, true);
    else
    anim.SetBool(“Idle”, false);

    if (run)
    anim.SetBool(“Run”, true);
    else
    anim.SetBool(“Run”, false);
    }
    }

    1. yasirkula Avatar

      Kodu şu şekilde yazmanızı öneririm:

      void Update()
      {
      if (Input.GetKey(KeyCode.A))
      {
      transform.position -= new Vector3(Time.deltaTime * hiz, 0, 0);
      transform.localScale = new Vector3(-1, 1, 1);
      run = true;
      idle = false;
      }
      else if (Input.GetKey(KeyCode.D))
      {
      transform.position += new Vector3(Time.deltaTime * hiz, 0, 0);
      transform.localScale = new Vector3(1, 1, 1);
      run = true;
      idle = false;
      }
      else
      {
      run = false;
      idle = true;
      }

      AnimasyonKontrolleri();
      }

      public void AnimasyonKontrolleri()
      {
      anim.SetBool(“Idle”, idle);
      anim.SetBool(“Run”, run);
      }

      Eğer bir işe yaramazsa, sıkıntı AnimatorController’daki koşma animasyonundan idle animasyona geçişin doğru ayarlanmamış olmasındandır.