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!
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.
Rica ederim 🙂
hocam oyunu açamıyorum acaba son halini nerden bulacağım.
“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.
Hocam merhaba projenin bitmiş halinde objeler yok düzletme ihtimaliniz var mi?
Assets/TheGame/Scenes/MainScene.unity sahnesini açmanız lazım. Şimdi test ettiğimde bir sıkıntı görmedim.
hocam link çalışmıyor yine son hali yok atabilir misiniz
Linki güncelledim.
teşekkürler hocam
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
Oyunun son halini şuradan indirebilirsiniz: https://gofile.io/d/1CZtnC. Elimde oyunun 10. dersteki hali yok ama umarım son hali işinize yarar.
çok teşşekür ederim eline sağlık
Hocam dosya yok diyor ama
Şimdi linki güncelledim.
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?
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.
Eline sağlık
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?
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.
Tamam hocam sağolun
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
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/
Hocam ders 9 da Player dosyasındaki player’ın animator componentindeki controller değişmiyor. Nasıl yapabilirim?
“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.
merhaba ustam bu link bende hata veriyor bunu nereden ve nasıl bulabilirim
https://dl.dropboxusercontent.com/u/25260770/UnityLessons/LessonAssets.zip?dl
“Derste Adı Geçen Winrar Arşivi” linkerinden birini kullanabilirsiniz.
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.
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.
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);
}
}
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.