UNITY 3D İçin Ders Arayanlar Buraya – Güncel

Yayınlandı: 12 Temmuz 2011 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde
Etiketler:, , , , , , , , , , , , , , , , , , , , , , , ,

SON GÜNCELLEME: 23 Şubat 2017 (Türkçe kaynaklara 1 yeni link eklendi)

Tekrar merhaba, bu yazıda size derlemiş olduğum pek çok UNITY 3D ders linkini paylaşacağım. Dersler için yazının devamını okuyabilirsiniz…

NOT: Çok sık olmasa da güncellenen script arşivimizi görmek ve dilerseniz indirmek için tıklayın: https://www.box.com/s/9354cf7fdbda92f573b6 (Alternatif link)

NOT2: Buradaki derslere bakmadan önce Unity hakkında sıkça sorulan soruları (S.S.S) incelemek isteyebilirsiniz: https://yasirkula.com/2014/09/05/unity-sikca-sorulan-sorular-s-s-s/

NOT3: Videolu derslerde benim de yaptığım gibi, eğer kotanız yoksa ve bu videoları internetten değil de bilgisayarınızdan izlemek istiyorsanız; yani videoları tek tek indirmek istiyorsanız https://yasirkula.wordpress.com/2011/07/12/firefox-tarayicisi-icin-en-mukemmel-2-eklenti-fast-dial-videodownload-helper/ konumuza bir göz atmanızı tavsiye ederim 🙂 .

A) TÜRKÇE DERSLER

1) KENDİ YAZDIĞIM DERSLER

2) DİĞER DERSLER / SİTELER

………………………………………………………..

B) İNGİLİZCE DERSLER

1) DERECELENDİRİLMİŞ DERSLER

Derecelendirme: 9/10

Neden: Eskiden Unity’nin kendi dersleri çok ahım şahım değildi ancak yakın zamanda gerçekten çok kaliteli dersler ortaya çıkardılar. Özellikle Projects kısmındaki dersler benim çok hoşuma gitti.

Derecelendirme: 9/10

Neden: Şimdiye kadar gördüğüm en kapsamlı sayfa. Çok sayıda faydalı Unity linkini içerisinde barındırıyor.

Derecelendirme: 9/10

Neden: Kitap okuyarak öğrenmek şahsen benim çok fayda gördüğüm bir öğrenme yöntemi ve bu link de neredeyse tüm güzel Unity kitaplarını bizim için derlemiş vaziyette.

Türkçe çevirisi için tıklayın: http://wp.me/p116Cp-dV

NOT: Dersin PDF formatlı hâlini indirmek için yazının başındaki “PDF Download” butonuna tıklayın.

Derecelendirme: 9/10

Neden: Bu eğitim dosyası o kadar mükemmel bir şekilde hazırlanmış ki hiçbir programlama dili bilmeseniz bile UNITY ile JavaScript programlamayla kesinlikle bu dersle başlamalısınız. Şimdiye kadar gördüğüm en ama en kaliteli başlangıç dersi.

Derecelendirme: 9/10

Neden: Sitedeki tüm derslere baktım ve ardından sitedeki ‘Challenge‘lerin üçünü de çok sorun yaşamadan tamamladım. Bana epey faydası oldu, size de olacaktır. UNITY için oluşturulmuş en güzel kaynaklardan birisi diyebilirim bu site için.

Derecelendirme: 8/10

Neden: Gerçekten ileri düzey konular işleniyor, böyle tutorialleri daha önce başka bir yerde görmedim. Ama konular çok detaylı açıklanmıyor ve anlamak için konu hakkında önceden bilgi sahibi olmanız ya da çok iyi araştırma yapmanız gerekiyor.

Derecelendirme: 8/10

Neden: 300 küsür sayfalık bir kitap. Genel anlamda hata da içermiyor, birkaç ufak tefek hatası var ama dikkatli bir göz hemen keşfediyor zaten hataları. Bana bilmediğim güzel şeyler öğretti açıkçası. Olumsuz yanları; çok basit ve önemsiz bazı şeyleri tekrar tekrar söyleyip durması (Sinir bozabiliyor) ve Unity’nin 2. sürümünü, yani eski sürümünü kullanması. O yüzden bazen sizin sürümünüzle uyuşmayan şeyler olabilir.

Derecelendirme: 8/10

Neden: Yaklaşık 350 sayfalık bir kitap. UNITY’nin 3. sürümünü kullandığı için sürümler arası farklılık konusunda sıkıntı da yaşatmıyor. Ufak tefek hataları var ancak dikkatliyseniz zaten kendiniz düzeltebiliyorsunuz bu hataları. İçerisinde toplam 4 adet birbirinden oldukça farklı oyunun yapımı anlatılıyor ve her Chapter’da bu oyunları adım adım daha da üst seviyeye getirmeye çalışıyoruz. Ben oldukça faydalı buldum.

Türkçe çevirisi için tıklayın: http://wp.me/p116Cp-zm

Derecelendirme: 8/10

Neden: Bu tutorial ile C#’a başladığımı belirtmek isterim. Ancak söylemem gerekir ki bu tutorialin öncesinde bir miktar Unityscript deneyiminizin olması şart. Oldukça fazla şey öğrendim bu tutorialden ve bilmediğim teknikler gördüm. İngilizce bilen herkese tavsiye ederim.

Derecelendirme: 8/10

Neden: Tutorialde tamamen C# kullanılıyor ve kitle olarak UNITY’e yeni sayılabilecek kimseler hedef alınıyor. Bazı yerlerin anlaşılması için geçmiş tecrübenizin olması ya da internette araştırma yapmanız gerekiyor. Ancak sonuç olarak güzel, basit bir oyun ortaya çıkıyor. Konuşulan İngilizce seviyesinin çok yüksek olmaması, anlaşılır düzeyde olması da cabası.

Derecelendirme: 7/10

Neden: Öteki Unity tutoriallerine nazaran bu çok daha hoşuma gitti çünkü oyunda kullandığımız kodların büyük çoğunluğunu bize gösteriyor ve açıklamalarda bulunuyordu. Ben bu tutorialden çeşitli şeyler öğrendim. Ancak kesinlikle Unityscript ile tecrübesi olmayanlar için değil bu tutorial. Ancak geçmiş tecrübeniz varsa siz de bakabilirsiniz.

Türkçe çevirisi için tıklayın: http://wp.me/p116Cp-f2

Derecelendirme: 6/10

Neden: Bu ders yeni başlayanların okumasının faydalı olacağı bir ders. Ancak yüzeysel, az ayrıntılı anlatımı, İngilizce olması yüzünden yüksek puan alamadı.

Türkçe çevirisi için tıklayın: http://wp.me/p116Cp-f2

Derecelendirme: 6/10

Neden: Öncelikle bu derse hiçbir programlama bilgisi olmayan biri kesinlikle bakmamalı. Çünkü çok açıklayıcı değil, ancak örneğin http://www.unityscript.com/lessons1/basics.php bu dersten sonra okunması faydalı olacaktır.

Derecelendirme: 6/10

Neden: Video kesinlikle kötü değil, notu yanlış anlamayın. Ama direkt ders öğretmediği için 8-9 puan vermenin de bir gereği yok.

2) DERECELENDİRİLMEMİŞ DERSLER / SİTELER

Zamanla güncellenmektedir. Siz de kendi derslerinizi bu portalda paylaşmak isterseniz konu altına yorum atabilirsiniz.

yorum
  1. gizem dedi ki:

    ellerinze sağlık teşekkürler..

  2. Ferhat Dede dedi ki:

    çok teşekkürler ben ios için geliştirme yapmayı düşünüyorum ama hiç bir yerde açıklama bulamadım unity ios için komisyon alıyor mu alıyorsa ne kadar komisyon alıyor??birde ios ile oyun geliştirme için unity iyi bir seçim mi?

  3. yasirkula dedi ki:

    Komisyon hakkında üzgünüm ama bilgim yok çünkü ben Windows platformunda çalışıyorum.
    Ancak 2. soruna cevap verebilirim, UNITY ile iOS üzerinde uygulama, oyun geliştirenlerin sayısı çok fazla. UNITY’nin forumunda iOS için uygulama geliştirmeye yönelik ayrı bir kısım bile var. Yani iOS için UNITY mükemmel bir seçenek. Bu 2 link belki biraz daha yardımcı olabilir:

    UNITY ile iOS tabanlı uygulama geliştirme için resmî forum: http://forum.unity3d.com/forums/27-iOS-Development

    UNITY ile, normal kullanıcılar tarafından yapılmış oyunların paylaşıldığı kısım (Pek çok iOS oyunu vb. var): http://forum.unity3d.com/forums/11-Showcase

    Ayrıca şu linke de bakmanı tavsiye ederim, iPhone için uygulama geliştirmeye yönelik bir arşiv: http://forum.unity3d.com/threads/19167-iPhone-Development-FAQ

  4. Ferhat DEDE dedi ki:

    İlginiz için çok teşekkür ederim ama gerçekten bu komisyonla ilgili tam anlmaıyla bir bilgi bulamadım yerli ve yabancı sitelerde kendi sitesinde bile bulamadım garip bir olay…

    Önerdiğiniz linkleri biliyorum takip ediyorum genelde ben bizim memleketimizde unity ile ios geliştirme yapan varmı diye merak etmştim açıkçası..

    Saygılarımla..

  5. ismail furkan dedi ki:

    Yha simdi ben Game Maker le 2 d oyunlar yapabiliyorum . Fakat artık 3d oyunlara gecmek istiyorum ama hangi oyun motorunu kullansam karar weremedim tawsiyenizi alabilirmiyim? Elimde simdilik 2 secenek war Unity 3d we 3D game studios . Yorumlarınızı Bekliyorum …

  6. ismail furkan dedi ki:

    Suan ikisindende Hic bisey bilmiorm 🙂 Öğreneceğim iste sizde yol gösterirseniz 😀 Zaten gamemaker le bunlar cok farklı sanki baska bi dala gecmis gibi hissediyorum kendmi 🙂 Nese Siz beni tamamen amatör olarak düsnün herseye yeniden baslamıs biri gibi =)

    • emre dedi ki:

      ismail tavsiyem unity 3d çünkü türkçe kaynağı çok fazla. Ayrıca 3d game studio ile o kadar iyi oyunlar çıkarılamıyor unity daha kullanışlı ve daha kolay yine söylüyorum tavsiyem unity.

  7. Ruşen dedi ki:

    Birşey soracam mesela bir oyun yapacaz diyelim ve ana karakter ördek olsun siz bu ördeği photoshop benzeri programlarla mı tasarlıyorsunuz yoksa unity le yapılabilirmi yoksa tasarımı başka programlarda yapıp entegre mi yapılıyor??

  8. ismail furkan dedi ki:

    potoshop deilde unityde de tasarlayabilirsn ama genelde 3d studio max adına bir programı kullanıolar.

  9. yasirkula dedi ki:

    @ismail furkan : Kesinlikle UNITY 3D. Ayrıca duyduğuma göre 3D Game Studio’nun lisans ücreti de epey tuzluymuş. UNITY ile script yazmak da JavaScript ile daha kolaydır diye düşünüyorum.
    Ayrıca nereden başlayayım demişsin, bu konuyu bu sorunu çözmek için açtım ben 🙂 . Eğer İngilizce bilgin iyiyse yanında (***TAVSİYELİ***) yazan linklere tıkla ve tüm derslerini baştan sona izle, kendin de uygula. Ayrıca kişisel bir tavsiye vereyim: Kesinlikle UNITY öğrenirken bir Word belgesine öğrendiklerini (değişken türlerinden tut da çeşitli fonksiyonlara, tanımlanmış kodlara kadar) tek tek açıklamasını da yaparak, ve hatta düzenleyerek (Kategorilere atamak gibi) not et. Ben öyle yapıyorum ve inan ki çok ama çok faydalı oluyor.

    @Ruşen : UNITY’de yapacağın oyunun boyutuna bağlı. 2 boyutlu bir oyun yapacaksan pekâlâ Photoshop, GIMP, Paint.Net vb. kullanıp 2D Texture oluşturabilir ve bunu UNITY’de bir “Plane (2 Boyutlu Yüzey)” objesine atayarak gayet basit bir şekilde istediğini elde edebilirsin.
    Ancak eğer yapacağın oyun 2.5 (2D arkaplan üzerinde 3D karakterle oynanan oyunların boyutu.) veya 3 boyutlu olacaksa Photoshop’la yapamazsın, 3DS Max, Blender, Wings 3D, Maya vb. 3 boyutlu tasarım araçları kullanarak beceri düzeyine bağlı olarak istediğine uygun bir 3D model oluşturabilirsin. Ancak bir model oluşturulduğu anda varsayılan olarak tamamen gri renkle kaplı hâldedir, bunun içinse biraz beceri ve birikim ile UV Map çıkartırsın, ardından objenin görünümünü Photoshop gibi 2D bir grafik aracında ayarlayabilirsin. Eğer modelleme konusunda henüz bilgin yoksa şu an söylediğim biraz karışık gelebilir ancak sonradan öğrenirsin zaten, sorun değil 🙂

  10. Ruşen dedi ki:

    anladım demek istediğiniz önce 3d modelleme sonra unity öğrenilmeli öyle mi!!

  11. yasirkula dedi ki:

    Eğer oyununda başkaları tarafından yapılmış hazır modelleri kullanacaksan (ki bu çok yapılan, utanılmaması gereken bir şey) gerek yok. Ancak oyununun her şeyiyle sana ait olmasını istiyorsan başlamadan önce de öğrenebilirsin sonra da. İlla önce öğrenmene gerek yok.

  12. ismail furkan dedi ki:

    Peki bisey daha sorcam Benim Hic bir Programlama dili bilgim yok 🙂 ne c++ ne assembly nede baska bie bunları öğrenmeden unity ye baslayabilrmiyim yada sizin tavsiyeniz ne ? 🙂

    • yasirkula dedi ki:

      İngilizce bilgin varsa Unity’de programlamaya http://www.unityscript.com/lessons1/basics.php ile başlayabilirsin. Hiçbir programlama bilgisi gerekmiyor. Ancak elbette ki önceden bir bilgi birikimi çok yardımcı olur. Örneğin en azından düzgün bir şekilde GML dilini kullanmayı bilmen bile senin bu yolda basamakları ikişer ikişer atlayarak gitmeni sağlar.

      Ayrıca C++ demişsin, ben kendimi örnek vereyim. Ben ilk defa programlamaya C++ ile başladım (Sırf Nesne Yönelimli C++ Programlama Kılavuzu adındaki mükemmel kaynaktan faydalanarak (Kitabın ismine tıklayarak kitapyurdu’na yönlendirilirsin.)) ancak daha çeyreğine gelmeden bırakmak zorunda kaldım; kitap kötü diye değil (Kitap tek kelimeyle süper), okulum var diye bırakmak zorunda kaldım. Ancak buraya kadar gelmişken tüm programlama dillerinde olan genel disiplinleri iyice öğrenmiştim. Ardından Game Maker’ın GML diline, 1 yıl sonra felan başladım. Bu aradaki 1 sene boyunca programlamayla uğraşmadım, uyuşukluk ettim :S .

      GML oldukça basit olduğu için eski bilgilerime neredeyse hiç bir katkısı olmadı. Ardından da Unity’de kodlamaya başladım. Bunun için de bu konuda gördüğün, derlemiş olduğum linklerdeki dersleri kullandım. Emin ol İngilizce bilgin varsa derlediğim tavsiyeli İngilizce dersler çok yardımcı oluyor. Ayrıca istersen az önce belirttiğim C++ kitabını al, en ucuza kitapyurdu’nda bulabilirsin. Ekstra bilgiden zarar gelmez 🙂

      NOT: Bir de assembly‘den bahsetmişsin, sadece adını duydum onun ancak assembly ilk programlama dillerinden biridir ve bu yüzden yazması oldukça zordur. Ancak assembly ile yazılan programlar en hızlı çalışanlardır. Yine de hiç değmez assembly ile uğraşmaya, sadece ismini bil yeter. 😀

  13. LoRdS dedi ki:

    Eline sağlık güzel çalışma. Ayrıca togog da bu aralar başladı bu işe.

    • yasirkula dedi ki:

      Evet ona katılmak isterdim ama katılamayacağım. Ancak neyse ki dersleri sonradan video olarak paylaşacaklar da onları indirip izleyebilirim. 🙂

  14. ismail furkan dedi ki:

    Tesekkürler 🙂

  15. abdullah dedi ki:

    teşekkürler, bu sayfayı yer imlerine ekledim

  16. mumma dedi ki:

    Yasir Hocam Çaylaklar için JavaScript (UnityScript) dosyasını indirip okudum. Çok iyi çevrilmiş ve çevirmen notları çok yerinde yazılmış. Temel bilgileri sayenizde öğrendim çok teşekkürler şimdi sırada diğer önerdiğiniz derslere göz atmak var. Çalışmalarınızın devamını sabırsızlıkla bekliyorum tekrar teşekkürler…

  17. ayln dedi ki:

    hiç anlamıyorum kod işlerinden bir dosyanızı indirdim kararlıyım öğrenicem şu veledi ama inanın en son bölümlerini anlayamadım yani beceremedim. Anlatımınızda çok iyiydi. Teşekkür ederiz

    • yasirkula dedi ki:

      Beğenmenize sevindim. Sorun yaşadığınız kısmın hangi tutorialin hangi sayfaları arası olduğunu belirtirseniz o konuları sonraki çevirilerimde daha açıklayıcı çevirmeye çalışırım.

  18. Revolet dedi ki:

    Ellerinize sağlık, teşekkürler.Çeviri yaptığınız UnityScript için de ayrıca teşekkür etmek isterim.Kodlarla ilk defa tanışmamama rağmen hiç sıkılmadan okudum ve js syntaxını öğrenmemi sağladı.

    http://www.burgzergarcade.com/hack-slash-rpg-unity3d-game-engine-tutorial
    Burdaki dersleri tavsiye ederim.Yeni buldum ve çok beğendim açıkçası.Bu kategoride 273 MMO-RPG dersi var.Hala devam ediyor dersler sanırım.Aynı sitede RPG oyununun GUI si ile alakalı 15 ders daha var.Youtubeun altyazı özelliğini kullanmanızı tavsiye ederim.(ingilizce-cc)Ayrıca derslerin C# olması ayrı bir hava katıyor.(C# js den daha güzel geliyor bana:))

    • yasirkula dedi ki:

      İlginiz için teşekkürler. O linki daha önce de görmüştüm ancak neden buraya koymadığımı bilmiyorum. Şimdi ekliyorum, tavsiyeniz için çok teşekkürler.

      C#’ın UnityScript’ten daha üstün olduğunu ben de duydum pek çok yerde, o konuda size hak veriyorum. Üstelik C#’a yönelik ders veren yerler oldukça azken bu linki eklememek ayıp olur 🙂

      Hayırlı Cumalar!

  19. Kenan dedi ki:

    Benim bir sorum var cevaplarsanız sevinirim.İyi derecede animasyon ve low poly modelleme biliyorum hep online bir oyun yapmak istemişimdir.Fakat işe hangi motordan başlayacağıma karar verebilmiş değilim.MMO bir oyun yapabilmek için 3dgs-unity hangisi daha avantajlı sizce?Bu arada tabiki işe basit single player oyunlarla başlayacamı belirtmek isterim teşekkürler.

    • yasirkula dedi ki:

      Bu konuda bilimsel verilerle karşılaştırma yapamam çünkü hiç 3dgs kullanmadım. Ama şahsen Unity’i öneririm. Şimdiye kadar Unity kullandığıma hiç pişman olmadım. Çeşitli tarzlarda online oyun yapımını anlatan pek çok tutorial de mevcut ama hep İngilizce. Ben şahsen 3dgs ile yapılmış oyun pek duymuyorum piyasada ama özellikle son zamanlarda Unity çok iyi çıkışlar yapıyor.

      Karar sizin…

  20. zehra dedi ki:

    merhaba yazılarınız ve linkler gercekten cok faydalı öncelikle teşekkürler. benim sormak istediğim 3ds max ta olusturduğumuz bir dosyayı unity e nasıl entegre ediyoruz bu konudas yardımcı olabilirmisiniz? ve unity de olusturdugumuz sahneyide xcode a nasıl gömüyoruz yardımcı olabilirseniz cok sevinirim

  21. tarkan dedi ki:

    usta unity çevirilerini okudum eline sağlık
    başlangıç için oldukça verimli..

  22. tarkan dedi ki:

    teşekkür ederim
    kafanı şişirmeye başlarım yakında 🙂

  23. ersan dedi ki:

    Herkeze merhaba,

    Ben birşey sormak istiyorum android sdk yı bir türlü gösteremedim unitye build edemiyorum
    edit>preferences>ExternalTools dan göstermeyi densemde bulamıyor sdk yı yardımcı olursanız sevinirim.

    iyi çalışmalar…

  24. ersan dedi ki:

    Oldu Siteden kurulu olan ADT Bundle dosyasını indirdim setup yapmadan geliyo onu indirdim ve kılasörü gösterdim oldu 🙂

  25. ersan dedi ki:

    Merhaba arkadaşlar,
    Ben müsadeniz olursa bir şey sormak istiyorum.
    1280×800 pixel ekranı olan galaxy 10.1 tab için bir şeyler yapıyorum.
    sorum şu olucak bu pixel i cameraya nasıl oturcam ben şöle bi yöntem ile yaptım guı text ekledim 1280×800 pix li bi resmi guı atadım cameramı ona göre ayarladım.

    sanırım camera size ile ilgili bir şey ler yapılıyor ama çözemedim. Benim camera size 100.

    İyi günler….

  26. ferhat dedi ki:

    abi helal size baya bir kaynak paylaşmışsınız… gönlünüze sağlık….

  27. Furkan dedi ki:

    Teşekkürler çok yararlı oldu home work benzeri bir oyun yaptım çatıdan çatıya atlıyosun falan işte yani kısacası çok işime yaradı ama bu oyunu online yapmak istiyorum mmo türünde o konuyla ilgili beni bilgilendirebilirseniz işim çok yarayacak şimdiden teşekkürler.

  28. Gokay dedi ki:

    Süleyman Yasir Bey,

    Ben 5 yıllık yazılım geliştiriciyim. genelde backend programlama yaptım. Grafikle pek aram yok. Son zamanlarda Unity ilgimi çekiyor ancak arkadaşlarıma hazırlattığım 3dmax çıktılarını unitye import ettiğimde kalite çok düşüyor. Kaplamalar görünmüyor. Bunun bir çözümü var mıdır? Yüksek kalitede sahneleri nasıl aktarabilirim. Bazı dökümanları inceledim ancak ne ben ne de 3dci arkadaşlarım sonuç alamadık. Konuyla ilgili yardımınızı rica etmekteyim. Teşekkürler.

  29. admin61611ustafa dedi ki:

    arkadaslar ben yeni basladım unıty daha karakter yapmayı bilmıyorum nesne araba koymak agac eklemek vs ogretırmısınız

  30. furkan dedi ki:

    Kesinlikle mükemmel hazırlanmış puanlarda tam tutturulmuş lakin güncellenmesi gerekiyor çoğu link batmış umarım en yakın zamanda güncellenir ve yenileri eklenir.

  31. Ersan Akpınar dedi ki:

    Merhaba,
    http://m1306.hizliresim.com/1b/u/plqw4.jpg
    Build ederken bu tarz bi hata alıyorum yardımcı olursanız sevinirim.

  32. Ersan Akpınar dedi ki:

    10 kere silip kurdum regedit den yol gosterdim.
    cihaza unity remote kurdum o çalışıyo ancak bir türlü build yapamadım.
    java 7 update 25
    java se development kit 7 pdate 25
    installer_r22.0.1-windows
    Unity 4.0.0f7
    Kurulu.

    • yasirkula dedi ki:

      Bende direkt Preferences’tan Android SDK klasörünü gösterince olmuştu. Daha önceki yorumlarda başka bir arkadaşımız şu yorumu yapmıştı, belki böyle çözebilirsiniz:

      “Oldu Siteden kurulu olan ADT Bundle dosyasını indirdim setup yapmadan geliyo onu indirdim ve kılasörü gösterdim oldu”

      EDIT: Siz zaten ADT Bundle üzerinden çalıştınız gibime geliyor. Sorununuza çözüm bulamadım. UNITY forumlarını denemenizi tavsiye ederim.

  33. Ersan Akpınar dedi ki:

    Merhaba Herkeze,

    ucak oyunu yapmaya başladım ateş etme kısmında takıldığım noktalar var yardımcı olursanız sevinirim.

    Elimde ki kod

    public var bulletPrefab : Transform;
    public var bulletSpeed : float = 6000;

    function Update (){
    if(Input.touchCount > 0)
    {
    var touch : Touch = Input.touches[0];
    if(touch.phase == TouchPhase.Began)
    {
    if (bulletPrefab && bulletSpeed)
    {
    var bulletCreate = Instantiate (bulletPrefab,GameObject.Find(“spawnPoint”).transform.position, Quaternion.identity);
    bulletCreate.rigidbody.AddForce(transform.right * -bulletSpeed);

    }
    }
    }
    }

    Ekranda nereye dokunursam dokuniyim ateş ediyorum halbuki ben bu kodu button üzerine atadım bir plane cizdim ve ustunde texture atım.

    Teşekkürler.

    • Ersan Akpınar dedi ki:

      GUI Texture ile çözdüm olayı 🙂

      function Update()
      {
      for (var touch : Touch in Input.touches)
      {
      if (guiTexture.HitTest (touch.position))
      {
      // we are now in the guitexture
      Debug.Log(“Touch”);
      exit;
      }
      }
      }

      • yasirkula dedi ki:

        Dediğiniz yöntemi ilk defa duydum, işime yarayabilir. Eğer bir GUI elemanına basınca ateş etmek istiyorsanız (ben öyle anladım) ateş etme kodunu OnMouseDown() fonksiyonuna taşıyabilirsiniz. Bu komut hem PC’de hem de Android’de düzgün çalışıyor.

  34. furkan dedi ki:

    yasir abi bana ulaşabilir msin ?

  35. RO dedi ki:

    Lİnkler için teşekkürler, listeye arrmedunity.com da eklenebilir, ben de şimdi keşfettim.

  36. sunalorhon dedi ki:

    Adamsın varya adamın dibisin ya .

  37. umut dedi ki:

    hocam unity reference ‘ı karıştırırken Instantiate fornksiyonunu buldum her neyse okudum falan filan. Kodu alttaki gibi yazdım

    #pragma strict

    public var a : int ;

    function Update () {

    }
    var prefab : Transform;
    for(var i=1;i<=10;i++){
    Instantiate (prefab, Vector3(a*30, 0, 0), Quaternion.identity);

    }

    ama prefab a hangi nesneyi atarsam atayım unity çalışmayı durduruyor. Sinir oldum. Sorun sizce neyden kaynaklanıyor. ?prefabla alakalı birseymi dökümanlarda yazmıyor öyle birşey

    • yasirkula dedi ki:
      #pragma strict
      
      public var a : int;
      public var prefab : Transform;
      
      function Update () 
      {
        for(var i=1;i<=10;i++) 
        {
          Instantiate (prefab, Vector3(a*30, 0, 0), Quaternion.identity);
        }
      }
      

      İki kod arasındaki farka bakarak hatalarınızı bulmaya çalışabilirsiniz.

      • umut dedi ki:

        oyunda her 30 birimde bir engel çıkıyor bende yukardaki gibi yaptığımda gereksiz yere birsürü clone oluşturuyor. her 30 birimde kameranın görmediği bir yerde bir tane clone oluşturmak için bu kodu yazdım ama update fonksiyonu içinde olduğu için atıyorum playerlocation ‘ın 30 dan 60 a geçene kadar program 30.birime sürekli clone koyuyor buda bilgisayarı yoruyor haliyle ben sadece 1 tane klone koymasını istiyorum ne yapmam lazım ?

        var prefab : Transform;
        var a:int;

        function Update () {

        a= transform.position.x/30 + 1;
        Instantiate (prefab, Vector3(a * 30, 0, 0), Quaternion.identity);
        }

      • yasirkula dedi ki:

        for( var g : GameObject in GameObject.FindGameObjectsWithTag( “Engel” ) )
        {
        Destroy( g );
        }

        Üstteki kod ile sahnedeki “Engel” tagına sahip tüm objeleri silebilirsiniz. Belki işinize yarar. Aklıma birşey gelmedi şu an.

  38. ahmet dedi ki:

    yasir bey öncelikle paylaştığınız bilgiler için çok çok teşekkür ederim bende bir oyun projesi üstünde çalışıyorum umut beyin sorununa benzer bir sorunum var öncelikle yazdığım kod

    function Update () {

    x= transform.position.x/10 + 1;
    }

    for(temp=x ;temp<x+1;temp++){

    Instantiate (prefab, Vector3(temp* 10, 0, 0), Quaternion.identity);

    }
    ben for u update içine koyduğumda gene gereksiz yere fazladan clone oluşturuyor. Benim istediğim x her arttığında bir tane clone oluşturması.sizin paylaştığınız

    for( var g : GameObject in GameObject.FindGameObjectsWithTag( “Engel” ) )
    {
    Destroy( g );
    }

    bu kodlarla bütün engeller kalktığı için engel kalmıyor. Her 10 birimde bir engel koyan bir kod nasıl yazarım asıl sorum bu ? Şimdiden teşekkür ederim herkese projelerinde başarılar.

    • yasirkula dedi ki:

      Merhaba,

      Desteğiniz için teşekkürler. Şöyle bir kod düşündüm:

      private var tr : Transform;
      private var sonX : float;
      
      function Start()
      {
      	tr = transform;
      	sonX = tr.position.x - 11; // Oyun başladığı anda engel oluşturmak için 10'dan büyük bir sayıyı çıkardım
      }
      
      function Update()
      {
      	if( Mathf.Abs( tr.position.x - sonX ) > 10 )
      	{
      		// Son konumumuzdan 10 birim uzaklaştık
      		sonX = tr.position.x;
      		// Burada Instantiate komutu ile 10 birim sağda ya da başka bir yerde engel oluşturabilirsin
      	}
      }
      
      • ahmet dedi ki:

        tesekkürler hocam bende şöyle bi kodla hallettim dün baya kafa yordum buna 😀

        var prefab : Transform;
        var a:int;
        var temp : int=0;

        function Update () {

        a= transform.position.x/55 + 1;

        if(a!=temp){

        Instantiate (prefab, Vector3(a* 80, 19,7), Quaternion.identity);

        }
        temp=a;

        }

      • yasirkula dedi ki:

        Elinize sağlık. Oyununuzda başarılar.

  39. ali dedi ki:

    function OnMouseDown(){

    Application.Quit();

    }

    yazıdığım kodu compile etmiyor sizce neden

    • yasirkula dedi ki:

      Verdiği hatayı da söylerseniz güzel olacak… 😛

      • ali dedi ki:

        hocam çözdüm ama çok saçma bir yolla yeni bir script açtım kodları kopyala yapıştır yaptım çalıştı ( türk mantığı bu olsa gerek) 😀

  40. ahmet dedi ki:

    yasir bey oyunda en yüksek skoru saklayan ve bu skoru geçince yenileyen bir şey yapmak istiyorum mantık nedir ?

    • yasirkula dedi ki:

      PlayerPrefs.SetInt( “yuksekSkor”, yuksekSkorDegeri ) fonksiyonu ile skoru saklayabilir, daha sonra PlayerPrefs.GetInt( “yuksekSkor” ) ile bu yüksekskora erişebilirsiniz. Ancak oyunu ilk açtığınızda henüz yüksek skor yapılmamış olduğundan “yuksekSkor” adında bir kayıt da olmayacaktır. Bu yüzden şöyle yapmalısınız:

      if( PlayerPrefs.HasKey( “yuksekSkor” ) )
      {
      yuksekSkor = PlayerPrefs.GetInt( “yuksekSkor” ) );
      }

  41. ali dedi ki:

    hocam yaptığımız bir oyunun telefonda kasması yazdığımız kodlardanmı yoksa oyundaki grafiğin kalitesinden mi kaynaklanır ?

    • yasirkula dedi ki:

      Modellerin polygon sayısının çok olmasından da olabilir kodun verimsiz olmasından da. Örneğin Update fonksiyonunda gereksiz bir ton iş yapılıyor olabilir.

  42. ahmet dedi ki:

    hocam normalde instantiate ile oluşturacağım objenin bir eğimi var ama clone lar eğimsiz oluşuyor bunu nasıl çözerim ?

    • yasirkula dedi ki:

      2 yol var:

      1) Instantiate( obje, pozisyon, rotasyon ); şeklinde olan komutta rotasyon kısmına Quaternion.identity yerine (bu terim 0,0,0 eğimini temsil eder) istediğiniz eğimi yazın. Bu obje2.transform.rotation da olabilir elle girdiğiniz sabit bir eğim de. Elle değer girecekseniz rotasyon yerine yazmanız gereken şu: Quaternion.Euler( 10, 20, 30 )

      2) var g : Transform = Instantiate( obje ); yazarsınız ve ardından g.position = blabla; komutunu kullanırsınız. Bu durumda eğim yine obje ile aynı olur.

      • ahmet dedi ki:

        tesekkürler hocam bende quaternion.euler yapmıştımda bir parantez eksik koymusum 🙂 ondan derlemiyormus genede tesekkür ederim cevabınız için

    • Turgut Kançeltik dedi ki:

      Selamun aleyküm hocam bi sorum olucaktı bir objenin etrafında başka bi objeyi ok yönleriyle 360 derece döndürtmek istiyorum bu konuda bana yardımcı olabilirmisiniz

      Birde fan(Rüzgar) efekti ile bir objeyi havada tutmak istiyorum bu rüzgar efektini bütün bi alana değil de tek bir noktaya uygulamak istiyorum bu konuda da bana yardımcı olabilirmisiniz

      • yasirkula dedi ki:

        İlk sorunuz için “unity rotate object around another one” şeklinde arama yapabilirsiniz. Objenin havada süzülmesi için ise ona yukarı yönde AddForce uygulayabilirsiniz. Fan efekti verebilmek için güç miktarını belli iki değer arasında sürekli değiştirebilirsiniz.

  43. ahmet dedi ki:

    birde prefabı assets klasöründen seçmek istiyorum ama elle değil scriptin içine yazcam

    prefab : GameOBject = table1 ;
    bunun gibi ama böyle yapamıyorum bun için ne yapmam lazım.

    • yasirkula dedi ki:

      Assets panelinde Resources adında klasör oluşturup table1’i içine atın. Ardından şu kodu yazın:

      var prefab : GameObject = Instantiate( Resources.Load( “table1”, GameObject ) );

      Ya da şunu deneyin (olur mu bilmiyorum):

      var prefab : GameObject = Resources.Load( “table1”, GameObject );

  44. Volkan dedi ki:

    tüm ders linklerini box.com yerine başka linke yükler misiniz acaba?? indiremiyorum ordan bir türlü

    • yasirkula dedi ki:

      Download butonunda bir sıkıntı var heralde, bende de olmadı. Onun yerine Download’ın solundaki Print butonuna basın. Yeni bir sayfa gelecek. O sayfada PDF’i kaydetmek için işe yarayan bir buton var.

  45. umut dedi ki:

    animasyon oynatmak için bu kodu kullanıyorum

    #pragma strict
    var player : GameObject = GameObject.Find(“player”);

    function Update () {

    if(transform.position.x – camera.main.transform.position.x == 20 )
    {
    animation.Play(“animplayer”);
    }
    }

    ama çalışmıyor ifin içindeki 2 = işarteini < yapınca çalışıyor neden böyle oluyor ?

    • yasirkula dedi ki:

      transform.position.x float türünde bir değer. İki float’ın == işareti ile aynı olup olmadığına bakmak genelde olumsuz sonuç döndürür çünkü bilgisayarlar float sayıları normalde gördüğümüz hallerinden çok farklı bir şekilde depolar ve bunlar üzerinde işlem yaparken doğru cevaptan çok küçük küsüratla farklı cevaplar elde edilir genelde. Şu kodu deneyin:

      if( Mathf.Approximately( transform.position.x, camera.main.transform.position.x + 20 ) )
      animation.Play( “animplayer” );

      Mathf.Approximately float sayılarla ilgili dediğim sorunu ufaktan çözmeye yarayan bir fonksiyon.

  46. Volkan dedi ki:

    işe yaramıyor indirmiyor bence başka linke yükleyin.

  47. umut dedi ki:

    hocam oyunda ekranın herhangi bir yerine tıkladıkça player yükseliyor benim ekranda pause tuşumda var ben pauseye basınca oyun duruyor sonra tekrar basınca oyun başlıyor ama aynı zamanda ekrana dokunduğum için cisim daha fazla yükseliyor buda gameover olmasına yol açıyor. Bunu nasıl engellerim

    • yasirkula dedi ki:

      Heralde Pause butonu bir GUI.Button. Bu butonun konumunu bir Rect aracılığıyla belirlediniz. Yapmanız gereken karakteri zıplatan scriptte şu değişikliği uygulamak:

      if( !guiButtonRecti.Contains( Input.mousePosition ) )
      {
        //karakterin zıplama kodu buraya
      }

      Yaptığımız şey Rect.Contains() fonksiyonunu kullanarak pause butonunun Rect’inin mouse pozisyonunu içine alıp almadığı. Yani mouse’nin tıklama anında pause’nin üstünde olup olmadığına bakıyoruz.

  48. umut dedi ki:

    eyw hocam çözdüm sorunu

  49. umut dedi ki:

    hocam marketten indirirken new unity project diye iniyor bunu nasıl çözerim

  50. ahmet dedi ki:

    hocam first person bir oyunda düşünün arabanın yanında enter a basınca arabaya binsin ama kamera arabanın arkasından baksın arabanın arkasındada kamera olucak main kameradan o kameraya geçişi nasıl yaparım

    • yasirkula dedi ki:

      Oyun sırasında o kameranın tag’ını Main Camera yapıp önceki Main Camera’nın tag’ını değiştirirseniz çalışabilir (bu işlemleri script yazarak yapacaksınız).

  51. ali dedi ki:

    hocam asset klasörüne dışardan bir çok 3 boyutlu tasarım atsak ama bunların hepsini oyunda kullanmasak oyun hafızasını gene artırırmı ? yoksa oyunda kullandıklarımızmı oyunun mb sini arttırır.

    • yasirkula dedi ki:

      Unity’nin dökümasyonunda kullanılmayan asset’lerin build edilen dosyaya eklenmediği yazıyordu. Ama bunu test etmenin en kolay yolu birinde gereksiz modeller olan, diğerinde olmayan iki farklı build yapıp bunların boyutunu kıyaslamak.

  52. ali dedi ki:

    birde grafik bakımından çok çok iyi oyunlar en fazla 10 mb falan oluyorlar ben kendim bir şey tasarladım 20 mb oldu ki grafiklerimde okadar kaliteli değil unityde çözünürlük düşürme tarzı birşey varmı oyun boyutunu düşürmek için

  53. ahmet dedi ki:

    oyunu build ederken hatası alıyorum sorun jdk kurulumundamı sizce ?

    Error building Player: CommandInvokationFailure: Failed to build apk. See the Console for details.
    C:\Program Files\Java\jdk1.7.0_51\bin\java.exe -Xmx1024M -Dcom.android.sdkmanager.toolsdir=”C:/Users/ertrkumut/AppData/Local/Android/android-sdk\tools” -Dfile.encoding=UTF8 -jar “C:/Program Files (x86)/Unity/Editor/Data/BuildTargetTools/AndroidPlayer\sdktools.jar” –

    stderr[
    Error: No such key(C:\Users\ertrkumut\Documents\New Unity Project\letskey.keystore:letsfly)
    ]
    stdout[

    ]

  54. berati dedi ki:

    Bi konuda yardımınıza ihtiyacım var , çok büyük olmayan bir haritada bi araba yarışı yapıyorum haritayı import ederken generate colliders şeçili olmazsa haritanın içinden geçip aşagı düşüyor seçincede haritadaki her nesne için mesh collider olusturuyor sorunum ortadan kalkıyor fakat bu halde .exe yaptıgım zaman unity logosundan sonra en az 4 5sn donuyor sonra başlıyor oyun , elimden geldigince maptaki textureleri ve objeleri azalttım arabanın değme ihtimali olmayan yerlere collider olusturmadım fakat durum aynı , oyun içinde istatistiklere bakıyorum fps’m ve diger değerler normal zaten tüm nesnelrde collider olsa bile oyun bilgisayarımın özelliklerinin çok altında.yani benim anladıgım kadarıyla o gecikme pc nin kasması değil ünity ile alakalı bi durum neden olabilir sizce? oyunu android’e cevirdigim zaman cok daha uzuyor bu sürec asıl sorunum o teşekkürler.

    • yasirkula dedi ki:

      Haritanızda illa ki Collider olacak. O zaman Mesh Collider yerine bir sürü Box Collider’ı kombine ederek haritayı öyle Collider’larla çevirmeyi deneyin.

      • berati dedi ki:

        Aklıma geldi aslındada çok uzun sürer diye denemedim bi deneyeyim tşkler.

  55. ahmet dedi ki:

    Arkadaşlar 3 tane platform oluşturdum rasgele bir tanesini oyuna atmasını istiyorum. platformların ismide platform1 platform2 platform3 ben GameObject.Find diyerek platforma yı aradım a yıde yukarıda random.range ile seçtim ama platformu bulmadı. Nedeni büyük ihtimalle a nın değerini platforma da a ya yazmadı yazması için ne yapmam gerek ?

    #pragma strict

    var clone : GameObject;
    var a : int;

    function Update()
    {

    a = Random.Range( 1,4);

    clone = GameObject.Find(“platforma”);
    clone.transform.position.x = 170 + i*60;

    }

    • ahmet dedi ki:

      şöyle de yazdım ama bunu derlemedi

      #pragma strict

      var clone[4] : GameObject;
      var a : int;

      function Start{

      clone[1] = GameObject.Find(“Platform1”);
      clone[2] = GameObject.Find(“Platform2”);
      clone[3] = GameObject.Find(“Platform3”);

      }

      function Update()
      {

      a = Random.Range( 1,4);

      clone[a].transform.position.x = 170 + i*60;

      }

      • yasirkula dedi ki:

        İkinci sorunuzdan başlayayım. Emin değilim ama belki şu değişikliği yapınca sorun düzelir:

        var clone : GameObject[];
        var a : int;

        function Start{

        clone = new GameObject[3];
        clone[1] = GameObject.Find(“Platform1″);
        clone[2] = GameObject.Find(“Platform2″);
        clone[3] = GameObject.Find(“Platform3″);

        }

        İlk sorunuzdaysa şöyle yazmayı deneyin:

        clone = GameObject.Find(“platform” + a);

  56. ahmet dedi ki:

    teşekkürler hocam peki ben 0 ile 4 arasında bir sayı seçmesini istiyorum ama bu sayının 3 olmasını istemiyorum yani random.range(0,5) ama 3 ü almıyacak bunun iiçin ne yapabilirim

  57. berati dedi ki:

    multiplayer bi araba yarışı yapıyorum her arabada bi camera var 1. kişi baglandıgında sorun yok 2. kişi baglandıgında 1. kişinin camerası 2 ye geçiyor sorun her baglanan kişinin clone’si olusuyor ve hepsi aynı prefab’dan üredigi için hepsinde camera var ve hep en son olusanın camerası aktif oluyor netten baktım baglanan oyuncular spawn olurken networkView.isMine değilse camerasını aktif yapma gibi bi çözüm var ama projeme uygulayamadım bunu nereye ve nasıl yazmam gerekiyor acaba 2. si lütfen müsait bi zamanınızda network dersi yapın teşekkürler

    • yasirkula dedi ki:

      Hiç multiplayer oyun yapma tecrübem olmadığından soruyu ben cevaplayamam ama cevabını bilen birileri varsa cevaplarsa çok güzel olur 🙂

  58. Ali Doğan Colak dedi ki:

    Oncelıkle herkese merhaba,
    Yasir kardesım sana cok tesekkur ederım.Unıtye yaklasık 1 haftadır yenı basladım.Bundan once hıcbır kodlama tecrubem yok ama grafık konusunda ıyıyımdır photoshop vs gıbı.Ayrıca harıta yapma konusundada aynı sekılde ama sayende bu sıtedekı bırcok lınkle cogu seyı ogrendım bılgıyı saklamayıp paylastıgın ıcın mınnettarım.
    Sana ufak bır sorum olacaktı….

    Mount and blade warband hıc oynadınmı bılmıyorum ama oyle oyun kontrollerı olan bır oyun yapmak ıstıyorum.Herkes sılah ates etme kodu koyuyorda ben kılıc sallamak gıbı seyler dusunuyorum oyunum orta cagda gececegı ıcın ve ayrıca kalkanla block yapmak kendını korumak gıbı seyler..Bunları yapmam ıcın yardımcı olacak faydalı bır lınk paylasırsan mınnettar olurum.

    Emegıne saglık hersey ıcın bıntesekkur. 🙂

    • yasirkula dedi ki:

      Merhaba,

      Desteğiniz için çok teşekkür ederim. Benimkisi kısa bir cevap olacak: dediğiniz gibi bir link görmedim. Var mıdır vardır elbet, araştırmak lazım. Ben çok araştırmadığımdandır. Tabi eğer siteyi ziyaret edenler arasında bu konuda link tavsiye edebilecek birileri varsa ben de faydalanmak isterim.

      Sektörde başarılı olmanız dileğiyle!

  59. ali dedi ki:

    bu konuda bana yardımcı olamadınız yınede tesekkur ederım.

    Zaten bu sıte herkese cok faydalı olacagından emınım emegınız ıcın sagolun..
    Iyı gunler,saygılarla..

  60. umut dedi ki:

    öncelikle herkese iyi çalışmalar. Şuan üstünde çalıştığım oyun projesi bitti.Fakat oyun telefonlarda çok kasıyor bunun nedeni sizce nedir. Çok karmasık bi kodda kullanmadım sistemi yorcak tarzda alt tarafta paylaşıcam zaten

    #pragma strict

    var clone : GameObject[];
    var a : int= 0;
    var b : int = 0 ;
    var temp : int = 0;
    var artis : int = 0;
    function Start()
    {
    clone = new GameObject[5];
    clone[1] = GameObject.Find(“platform1”);
    clone[2] = GameObject.Find(“platform2”);
    clone[3] = GameObject.Find(“platform3”);
    clone[4] = GameObject.Find(“platform4”);
    clone[5] = GameObject.Find(“platform5”);
    }

    function Update()
    {
    var i : int = transform.position.x/70 +4;

    do
    {
    a= Random.Range(1,6);
    }while(a==b);

    if(i!=temp)
    {
    artis++;
    }
    temp = i ;

    if(clone[a].transform.position.x + 70 < transform.position.x )
    {
    clone[a].transform.position.x = 345+ artis*70;

    }
    b=a;

    }
    —————————————————————————————
    #pragma strict

    var konum : Vector3;
    static var playerSpeed : float = 0.5;
    static var newton : float =250;

    function Update () {
    Move();

    }

    function Move(){ //HAREKET FONSİYONU

    konum.x = transform.position.x+ playerSpeed;
    konum.y = transform.position.y;
    konum.z =0;

    if( Input.GetMouseButtonDown( 0 ) )
    {

    rigidbody.AddForce(Vector3.up*newton);
    }
    transform.position= konum;
    }

    function OnCollisionEnter ( temas : Collision )
    {
    if ( temas.gameObject.name == "enemy" || "zemin"){
    playerSpeed = 0;
    Application.LoadLevel("try_again");

    }

    }

    diğer scriptler 3-4 satır skor hesaplamak için falan.

    Acaba sorun kodların sistemi yormasımı yoksa grafiksel bi sorunmu bi yardımcı olurmusunuz.

    • yasirkula dedi ki:

      Bu scriptlerde ağır bir kod yok. Yalnız “if ( temas.gameObject.name == “enemy” || “zemin”){” satırının nasıl çalıştığını anlamadım. Hata vermesini beklerdim ben. Düzgün hali şöyle olacak:

      if ( temas.gameObject.name == “enemy” || temas.gameObject.name == “zemin”){

      • umut dedi ki:

        hocam tekrar baktım benim yazdığım düzgün çalışıyor :)) hatada vermedi ikisinden birine çarpınca oyunu bitiriyor. Ama kasma sorunu heralde grafiklerden kaynaklanıyor.

  61. Murat dedi ki:

    Muazzam geniş bir kaynak derlenip toparlanmış , yakın zamanda unity3d’ye giriş yapıyorum.

  62. umut dedi ki:

    Oyun içirisinde bir cube oluşturdum ve bu kübe animasyon yaptırmak istiyorum animasyonu yaptım Inspector u debug yapıp animasyon tipini 1 yaptım ve kodlarıda alttaki gibi yazdım

    function Update () {

    if(transform.position.x == camera.main.transform.position.x+20)
    {
    animation.Play(“door”);
    }
    }

    camera ile kübün arasında 20 br olunca bu kodun çalışması gerekmiyormu kafayı yiyeceğim 2 gündür çözemedim..

    • yasirkula dedi ki:

      position değeri bazen 0.01, bazen 0.003568, bazen 1, bazen 0.12345 şeklinde artıyor. Yani nasıl arttığı belli olmuyor. position.x’in kameranın position.x’inin tam ama tam 20 fazlasına eşit olması çoooook zor bir ihtimal. Arada her zaman en azından siz deyin 0.1 ben diyeyim 0.001 birimlik mesafe olur.

      Mesela şöyle yaparsanız daha iyi olur:

      if(Mathf.Abs(transform.position.x-Camera.main.transform.position.x-20)<0.3)
      {
      animation.Play("door");
      }

      Eğer position.x ile kameranın position.x'inin 20 fazlası arasındaki fark 0.3'ten azsa animasyon oynatılır.

      • umut dedi ki:

        Mantığı anladım ama Abs fonksiyonu içine girilen sayı pozitifse negatif negatifse pozitifini vermiyormuydu notlarda öyle okumuştum ben onu 🙂

      • yasirkula dedi ki:

        Mutlak değerini alıyor. Yani sayı negatifse pozitif yapıyor, pozitifse ellemiyor.

  63. Ahmet dedi ki:

    ‘Mavi’ adlı kanalı derecelendirmeye alacak mısınız?

    • yasirkula dedi ki:

      Yoğun olduğumdan dolayı uzun bir süre derecelendirme yapacağımı sanmıyorum. Ama arada sırada derecelendirilmemiş linkler eklemeye devam edeceğim.

  64. Ali dedi ki:

    Abi be unity4 indirdim ama hiçbir şey bilmiyorum ne yapayım?

    • yasirkula dedi ki:

      Burada tavsiye ettiğim tutoriallerden izle/oku ya da kendin tutorial bulup onlara çalış. Yeni kodlar öğrenirken öğrendiklerini mutlaka not al.

  65. Bilal dedi ki:

    Abi site güncelmi?

  66. burak dedi ki:

    Araba hareket ettirme derslerini bulabilecğim bi site vasrmı .?

  67. harekir dedi ki:

    yasir hocam unityde farklı platformlara build ederken farklı kodlar veya ne gibi değişiklikler lazım ben yeni başladım oncelikle ingilizce öğrenmem gereklimi bu konudada bilgi verirseniz sevinirim

    • yasirkula dedi ki:

      İnternetteki kaliteli tutorialleri anlamak için İngilizce öğrenmeniz gerekli. Platformlar arası kod farkı az: Android’de multi-touch ve sensör için ekstra kod yazdım başka da ekstra kod yazmadım.

  68. recep dedi ki:

    hocam kolay gelsin benim unity de araziye uyguladığım bazı texture lar androide build edince minecraft gibi kareli görünüyor bi de skybox bozuldu gökyüzünde dalgalı renkler var yardım edebilirseniz sevinirim

  69. harekir dedi ki:

    hocam bu iş için ingilizce öğrenecem ve nasıl öğrenmeliyim neler yapmalıyım bana yardımcı olurmusunuz siz çeviri yaptığınıza gore bu işte iyisiniz bende dersleri anlamak ve yazılım dünyasında sürekli ingilizce cıktığı için öğrenmek istiyorum

  70. harekir dedi ki:

    sadece deneyimlerinizden yararlanmak istemiştim ama sizde haklısınız şimdi bana ingilizce dersi veremessiniz burda ve ingilizceyi öğrendiğim zaman bunun karşılığı bana geri gelecek mi yani istediğim uygulama veya oyunu yapabilcekmiyim yeterki düzgünce anlatan kaynak olsun azim diyecek olursanız da bilgi olduğu zaman zaten azimde yanında gelecektir 😀

    • yasirkula dedi ki:

      İngilizce bilginiz olduktan sonra faydalanabileceğiniz tutorial sayısı %500 kadar artacak. İstediğiniz uygulamayı yapabilir misiniz? Bilmiyorum, belki… Yalnız “bilgi” ile “azim” kol kola gezmiyor; azim apayrı birşey. Eğer uğraştığınız şey ilgi alanınıza girmiyorsa ne kadar bilgili de olsanız azminiz zayıf kalacaktır.

  71. harekir dedi ki:

    ve merak ettiğim bir konu ingilizcedeki kelimelerin hepsini bilmemiz imkansız onlar bile bilmiyordur mesela siz kaba taslak kaç kelime bildiğinizi söylermisiniz 10000 20000 mesala araştırmalarımda 10000 yeterli diyorlar tabi zamanla dahada genişler

    • yasirkula dedi ki:

      10,000 kelime bildiğimi hiç düşünmüyorum. 10K, 20K kelimeyi adam gibi bilmek çok iyiye işaret.

      • harekir dedi ki:

        öğrenmek baya sıkıntılı bir kelimenin baya anlamı olabiliyor ve bunu cumleye göre yerleştirmek zorunda kalıyorsunuz cidden baya zamanımı alacak sanırsam tavsiye olarak verebileceğinz önerileriniz varmı mesela çeviri yaparak başlamak veya kitap okumak vs

      • yasirkula dedi ki:

        İngilizce altyazı ile İngilizce dizi izleyebilirsiniz. Kitap okumak da iyidir elbette. Yabancı penpal’lar edinebilir, yabancı chat’lerde sohbet edebilirsiniz. Hepsi de çok faydalı olur.

      • harekir dedi ki:

        haklısınız bir yerden başlayıp geliştirmemiz lazım bu arada bildiğiniz bir site varmı mobile oyun geliştime üzerine unity için tutorial lazım ama bulamadım

      • yasirkula dedi ki:

        Mobile odaklanmış bir tutorial bilmiyorum.

  72. gökhan dedi ki:

    else if (Application.platform == RuntimePlatform.WindowsEditör || RuntimePlatform.WindowsWebPlayer || RuntimePlatform.WindowsPlayer)

    kodda şöyle bir hata alıyorum : expecting EOF found “else”
    ikinci hata: unexpected char:0xF6.

    • yasirkula dedi ki:

      Kodlarda Türkçe karakter kullanamazsınız. WindowsEditör’ü WindowsEditor olarak değiştirin.

      Kodun tam doğru hali şu:

      else if( Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsWebPlayer || Application.platform == RuntimePlatform.WindowsPlayer )

  73. elif dedi ki:

    merhaba arkadaşlar unityde araba sürme süre puan yapıyorum. İstediğim şu parkurda devrildiğinde ya da bir yere carptıgında yeniden başlatma kodu nedir acaba ?lütfen yardımcı olur musunuz?

  74. Tarık BAYÇELEBİ dedi ki:

    Yasir abi merhaba derslere baktım, çok güzel sağolun. Ama aradığım dersi bulamadım. Mesela oyundaki karakter bir şekilde para kazanabilecek ve parayı harcayarak kendine eşya vb. bir şey alabilecek. Oyun içi para sistemi yani. Bildiğin bir ders veya kodlama varsa yazabilirmisin lütfen. Teşekkürler, saygılar.

  75. Abdullah dedi ki:

    sağolun hocam 3d kolay oluyoda 2d de takıldım ya buarda verdiğiniz flappybird dersini olkuyup flydragon isimli ib oyun geliştirdim
    ha geliştirecek pek bişey yokta 😀

  76. Abdullah dedi ki:

    bide başka bi ders varmı böyle 2d fight gibi

  77. Ali dedi ki:

    merhaba unity ye yeni başladım. sitenizi yok yok. elinize sağlık. en yararlı kaynaklara sitenizden ulaşıyorum. Teşekkürler.

  78. kamuran sönecek dedi ki:

    Hata ayıklaması yapılabilir bir APK yüklediniz. Güvenlik nedeniyle, Google Play’de yayınlanmadan önce hata ayıklama özelliğini devre dışı bırakmanız gerekir.

    Hocam bu hatayı sürekli alıyorum. İmzayı 10 kere kurdum nerdeyse gene olmadı sorun nedir sizce

  79. kamuran sönecek dedi ki:

    Hay allah razı olsun bakar kör olmuşuz 🙂

  80. Can dedi ki:

    hocam cok faydali bir siteniz var sağolun öncelikle. sitede görememiş olabilirim ama soru cevap bölümü bulamadım o yüzden bu konunun altına yorum yapıyorum kusura bakmayın. benim bir kaç sorum olacak yardımcı olursanız sevinirim.
    öncelikle ben android için kendi çapımda bu işi öğrenmeye çalışıyorum. çok fazla kod bilgim yok sizin çaylaklar için yazdığınız dersleri inceledim.
    ben oyun 2d oyunda oyuncumun anahtara deyince kapının açılmasını istiyorum.
    oyuncuya anahtara değdiğini şu kodla tanımladım
    void OnCollisionEnter(Collision temas)
    {
    if(temas.gameObject.name == “Enemy”)
    {
    iHealth -= 10;
    }
    if(temas.gameObject.name == “anahtar1”)
    {
    Debug.Log (“anahtaradeydin”);
    }
    }
    tamam anahtara deydin diyo ama anahtara deyince o kapı açılması işini nasıl yapcam . kapı açılsın derken yani kapı adlı objem yok olsun mesela.?
    burda biraz kafam karıştı. yardımcı olursan sevinirim.

    • yasirkula dedi ki:

      public GameObject kapiObjesi; adında bir değişkeniniz olsun. Bu değişkene değer olarak kapı objesini Inspector paneli vasıtasıyla verin. Ardından Debug.Log yerine Destroy(kapiObjesi); kodunu yazın.

      • Can dedi ki:

        Teşekkürler, tam istediğim gibi oldu. Hocam arada bir küçük de olsa sorularım oluyor buraya mı yazayım yoksa soru cevap yaptığınız bir bölümünüz var mı?

      • yasirkula dedi ki:

        Buraya yazabilirsiniz.

  81. umut dedi ki:

    Yasir bey iyi günler elinize sağlık çok güzel bir forum birbirinden güzel bir sürü bilgi var. Artık konulara bakınca ilk hangisini okusam diye düşünüyorum 😀 size sormak istediğim bir soru var bir oyun projesiyle ugrasıyorum deneme amaçlı bir apk oluşturdum ve bunu telefonuma attım ama telefonda apk yı kurmaya çalışınca uygulama yüklenmedi hatasıyla karşılaşıyorum sorun sizce nedir unityde oyun çalışıyor ama dokunmatik ekranda test etmek istiyorum. Teşekkürler…

    • umut dedi ki:

      windows da exe olarak derlediğimde çalışıyor acaba android sdk kurulumundamı bir yanlışlık yaptım ?

      • yasirkula dedi ki:

        APK build alabiliyorsanız Android SDK kurulumunda hata olduğunu sanmıyorum.

        Android telefonunuzun sürümü çok eski olabilir (minimum Android 2.3.1 gerekiyor). Eğer telefonunuzun sürümü daha yüksekse o zaman bilgisayardan Android SDK Manager’ı açın ve oradaki tüm Android sürümlerinin kurulduğundan emin olun.

  82. umut dedi ki:

    Oyuna şöyle bir guı kodu yazdım
    if(!hasBeenPressed)
    {
    if(GUI.Button( new Rect(0, 95 , Screen.width, Screen.height * 0.15f) , “Press to Start”));
    {
    oyunBitti = false;
    hasBeenPressed = true;
    }
    }

    buttona tıklandığında oyun baslıyacak ve button silincek ama oyunu çalıştırdığımda buttona basmadığım halde oyun baslıyor ve button siliniyor. Sorun nerde sizce herseyin duzgun çalışması gerekmiyormu.

  83. ahmet dedi ki:

    hocam bende oyunu androide derleyebiliyorum ama telefonda yüklenmiyor android sürümümde düşük değil sdk manager dan tüm sürümleri indirdim sorun sizce ne olabilir

    • yasirkula dedi ki:

      Telefonunuzun Ayarlar-Güvenlik kısmında “Bilinmeyen kaynaklardan uygulama yüklemeye izin ver” gibi bir seçenek var; Google Play harici bir yerden APK yükleyebilmek için onun işaretli olması lazım.

  84. umut dedi ki:

    player içerisinde oyunu kontrol ettiğim bi script var ve bu scriptte oyunbitti bool değişkeni var aynı sizin flappt bird dersinizdeki gibi ben bu değişkeni baska bir nesneye atanmış baska bir scriptle erişmek istiyorum nasıl yapabilirim.

    • umut dedi ki:

      unity nin kendi sitesinde

      var otherScript: OtherScript = GetComponent(OtherScript);

      ( http://docs.unity3d.com/412/Documentation/ScriptReference/index.Accessing_Other_Game_Objects.html )

      bu şekilde erişilebilir diyor ama OtherScript diye bir tag bulmadı

      • umut dedi ki:

        şimdi buldum aramayı whot to get veriables from other script diye yapınca doğru sonuca ulaştım değişkeni static yaparsak diğer bir scriptten erişebiliyormuşuz Örneğin scriptAdi.degiskenIsmi bu sekilde erişilebiliyormuş

    • yasirkula dedi ki:

      Scriptin ismi BenimScriptim, o scripte sahip objenin ismi BenimObjem olsun. Bu durumda:

      GameObject.Find( “BenimObjem” ).GetComponent( BenimScriptim ).oyunbitti şeklinde erişebilirsiniz.

      Bu kodu ender çağırıyorsanız (mesela 10 saniyede bir kere ya da daha az sıklıkla) sıkıntı yok ama saniyede 5-10 kere çağrılıyorsa yavaşlamaya sebep olabilir. Bunun için BenimScriptim’i bir değişkende depolayın (Start fonksiyonunda): var benimScriptim : BenimScriptim = GameObject.Find( “BenimObjem” ).GetComponent( BenimScriptim );

      Ardından artık şu kodu kullanın: benimScriptim.oyunbitti

  85. umut dedi ki:

    Şöyle bir kod yazdım görevi oyun açıldığında ekranda bir gui buttonu olucak butona basınca oyun baslıyacak ve button silincek silme işlemim çalışıyordu ama sonradan durduk yere bozuldu ne siliyor nede oyunu baslatıyor nerde hata yaptım sizce

    var hasBeenPressed : boolean = false;
    function Awake () {
    UcakHaraket.oyunBitti = true ;
    }
    function OnGUI()
    {
    if (!hasBeenPressed)
    {
    if(GUI.Button(new Rect(0 ,Screen.height * 0.33 ,Screen.width , Screen.height * 0.2f ), “Press to Start”))
    {
    hasBeenPressed = true;
    UcakHaraket.oyunBitti = false ;
    }
    }
    }

    • yasirkula dedi ki:

      Ben kodda sıkıntı göremedim.

      • umut dedi ki:

        bende göremedim şimdi debug.log yaparak oyunBittiyi ekrana yazdırmak istedim if in içine oyunbittiyi false yaptıktan sonra bi debug koydum programı çalıştırdım ama GUI.Button un bulunduğu if e girmiyor program onun dışında if(!hasBeenPressed) içine girip ikinci ife girmeden çıkıyor kaç gündür uğraşıyorum 🙂 bi türlü çözemedim

  86. umut dedi ki:

    Bir helikopter similasyon oyunu yapmak istiyorum. fare iler doğru haraket ettiğinde helikopterin ucu öne eğilicek bu sayede ileri gitmiş olucak. bununla ilgili bi fonksiyon varmıdır nasıl yapabilirim bildiğiniz bir kaynak yada fonksiyon varsa söylermisiniz.

    • yasirkula dedi ki:

      transform.eulerAngles’ı değiştirerek çözülebilir belki ama en iyisi internette unity helicopter example tutorial gibi bir arama yaparak orada nasıl bir yöntem uyguladıklarını incelemeniz. Benim bildiğim bir tutorial yok.

      • umut dedi ki:

        o şekilde bir arama yaptım zaten ama çoğu kişi yön tuşlarını kullanmış benim istediğim şekilde yapanlarda açıklama yapmamış sadece oyun tanıtımı yani.. Her neyse şöyle bir mantık düşündüm sizede anlatayım.

        private var fareIlkPoz : Vector3;
        private var fareSonPoz : Vector3; diye farenin konumlarını tutan iki değişken tanımladım Start fonksiyonu içerisinde farenin ilk konumunu fareIlkPoz a atadım daha sonra Update fonksiyonu içerisinde fareSonPoz a farenin son pozisyonunu atadım ve bu değer sürekli yenilendiği için iki değişkenin x pozisyonlarını karşılaştırdım. fare koordinatları sol üst köşede 0.0.0 olarak başlayıp aşşagıya doğru arttığı için eğer fare ileri itilirse ekranda fare yukarı çıkacağı için x azalır eğer fareSonPoz.x fareIlkPoz.x){
        ileriHiz = (fareSonPoz.x – fareIlkPoz.x)/100;
        transform.eulerAngles = Vector3(transform.eulerAngles.x – ileriHiz * Time.deltaTime ,transform.eulerAngles.y ,transform.eulerAngles.z);
        }

        else if(fareSonPoz.x < fareIlkPoz.x){
        ileriHiz = (fareSonPoz.x – fareIlkPoz.x)/200;
        transform.eulerAngles = Vector3(transform.eulerAngles.x + ileriHiz* Time.deltaTime ,transform.eulerAngles.y ,transform.eulerAngles.z);
        }

        belki şimdi biraz yardımcı olursunuz. Bu arada tekrar teşekkür ederim cevabınız için…

      • umut dedi ki:

        o şekilde bir arama yaptım zaten ama çoğu kişi yön tuşlarını kullanmış benim istediğim şekilde yapanlarda açıklama yapmamış sadece oyun tanıtımı yani.. Her neyse şöyle bir mantık düşündüm sizede anlatayım.

        private var fareIlkPoz : Vector3;
        private var fareSonPoz : Vector3;

        diye farenin konumlarını tutan iki değişken tanımladım Start fonksiyonu içerisinde farenin ilk konumunu fareIlkPoz a atadım daha sonra Update fonksiyonu içerisinde fareSonPoz a farenin son pozisyonunu atadım ve bu değer sürekli yenilendiği için iki değişkenin x pozisyonlarını karşılaştırdım. fare koordinatları sol üst köşede 0.0.0 olarak başlayıp aşşagıya doğru arttığı için eğer fare ileri itilirse ekranda fare yukarı çıkacağı için x azalır eğer fareSonPoz.x fareIlkPoz.x){
        ileriHiz = (fareSonPoz.x – fareIlkPoz.x)/100;
        transform.eulerAngles = Vector3(transform.eulerAngles.x – ileriHiz * Time.deltaTime ,transform.eulerAngles.y ,transform.eulerAngles.z);
        }

        else if(fareSonPoz.x < fareIlkPoz.x){
        ileriHiz = (fareSonPoz.x – fareIlkPoz.x)/200;
        transform.eulerAngles = Vector3(transform.eulerAngles.x + ileriHiz* Time.deltaTime ,transform.eulerAngles.y ,transform.eulerAngles.z);
        }

        belki şimdi biraz yardımcı olursunuz. Bu arada tekrar teşekkür ederim cevabınız için…

      • yasirkula dedi ki:

        Farenin x koordinatı yatay eksendeki konumunu verir. Siz dikey eksendeki konumunu kullanacağınız için y koordinatından faydalanmalısınız. Onun haricinde ilk bakışta kodunuzda başka sıkıntı görmedim.

  87. umut dedi ki:

    network ile ilgili ders hazırlamayı planlıyormusunuz hocam

  88. umut dedi ki:

    Simdi oyunda bi puan ve bu puana bağlı level olsun ilk 100 puanda lvl 2 olcak sonra 200 puan daha kazanınca 3.levele geçicek falan filan. Bi kutu oluştursam puan kazandıkça o kutu sonuna kadar dolsa dolduğunda lvl atlasa…. demek istediğim anlaşıldımı bilmiyorum 😀 aynı telefonun şarz göstergesi gibi böyle birşeyi nasıl yaparım ? Yani puan arttıkça orası dolcak tek merak ettiğim bu ?

  89. umut dedi ki:

    Menu adlı bir scriptim var ben baska bir scriptten bu scriptteki bir değişkene ulaşmak için menu.degiskenIsmı ile erişebiliyorum tabi değişken static olucak. Menu scriptinin içindeki bir fonksiyonada baska bir scriptten bu şekilde erişmeye çalıştım ama basaramadım yani fonksiyon static void MenuKapa(); diğer scripttede Menu.MenuKapa() yapıyorum ama olmuyor ?? sorun nedir sizce…

  90. Mesut dedi ki:

    Android tabanlı ya da pc tabanlı network dersi yapacak mısınız?
    Lütfen çoğu kişinin network(Türkçe) dersine ihtiyacı var.

    • yasirkula dedi ki:

      Yakın zaman için bir planım yok ama uzun vadede öyle bir ders yazmayı ben de istiyorum. Tabi öncesinde konuya bi kendim çalışmam lazım 🙂

    • yasirkula dedi ki:

      Hazır kod üzerinden gitmiş, kodun önemli kısımlarını açıklamamıșsınız. Bu benim tercih ettiğim stil değil ve dürüst olmak gerekirse yazıda bahsettiğiniz aşamalar, sizin oyununuz harici bir oyunda (örneğin bir 3D FPS) çalışmayacaktır.

      • Şahin dedi ki:

        Yorum için teşekkürler birdaha ki derse kodu açıklayıp anlatacağım

  91. umut dedi ki:

    hani facebookta elimizi yana kaydırdığımızda bildirim penceresi falan açılıyordu ben onu benim oyunuma göre biraz değiştirmek istiyorum. ama eli kaydırdığımı nasıl anlıyacam ?

    • yasirkula dedi ki:

      Input.touches, Time.time, Touch.position, Touch.deltaPosition ve Touch.fingerId gibi, kullanabileceğiniz çok çeşitli değişkenler mevcut.

  92. Yunus Emre Arslan dedi ki:

    C# Biliyorum 3d oyunlar yapmak istiyorum bu dersleri izlemem bana yardımcı olur mu.Hangi derecede c#bilmem gerekir.3d modelleme için hangi programı kullanayım Cevaplarsan sevinirim.

  93. umut dedi ki:

    private bir gameobject tanımladık diyelim ama bu objeyi scene den belirlemek istiyoruz ve bunun için GameObject.Find bla bla bla … gibi fonksiyonlar kullanıyoruz ya ben bir light tanımladım ve aynı şekilde bunuda kodlar ile scene den seçmek istiyorum ama GameObject olmadığı için bu methodu kullanamıyorum yerine ne kullanabilirim.

    • yasirkula dedi ki:

      Öncelikle Light’ın olduğu objeye GameObject.Find ile erişmelisiniz. Ardından o objenin Light’ına “light” değişkeni ile ulaşabilirsiniz. Yani: “GameObject.Find(“LightObjesininAdi”).light”.

  94. UNNAMED dedi ki:

    S.a https://www.youtube.com/watch?v=CvEQwTxMOFI bu videodaki gibi bi tutorial paylasirmisin 🙂

  95. Özgür dedi ki:

    skor+= Time.deltaTime*2; Bu kodu karakter oldugunde nasıl durdurabilirim. (Karakter Herhangi bir nesneye değdiğinde ölüyor)

  96. umut dedi ki:

    Application.CaptureScreenshot(“resim.png”);

    bu kodla ekranın görüntüsünü alıp çihaza kaydetmek istiyorum ama telefonda denedim çalışmadı sizce sorun ne olabilir?

  97. umut dedi ki:

    iyi günler kısa bir sorum olucak. Oyunda 2d playerinın arkasından coliderli bir iz bırakmak istiyorum aklınıza gelen bir yöntem yada döküman varmıdır.

    • yasirkula dedi ki:

      Araba oyunlarında tekerlerin bıraktığı ize skidmark deniyor. Belki o sistemi araştırırsanız kendi oyununuza uyarlayabilirsiniz.

  98. Özgür dedi ki:

    Butona basılı tutma olayını nasıl yapabilirim .. butona bastıkca nesne donecek ?

  99. Özgür dedi ki:

    public void Update () {

    if (Input.GetMouseButton (0))
    dondurulen.transform.Rotate (0, 0, 10);
    Debug.Log(“Basılıyor”);
    }
    }

    Bu kodu tamamen butona nasıl atayabilirim .. bu kodla nereye basarsam basayım calısıyor ?

  100. Özgür dedi ki:

    public void Deneme () {
    //Input.GetMouseButton (0);
    dondurulen.transform.Rotate (0, 0, -50);
    Debug.Log(“Basılıyor”);
    }

    hocam bu calısıyor ama basınca calısıyor basılı tutunca calıssın isitoyrum

    • yasirkula dedi ki:

      Size gerekli olan tüm bilgileri yukarıda verdim. OnGUI kodluyorsanız RepeatButton kullanın, UI kullanıyorsanız verdiğim linki inceleyin dedim. Bu dediklerimi duymazdan geliyorsunuz ve ben de yardımcı olmayacağım bu durumda.

  101. Özgür dedi ki:

    ama ben size basılı tutma olayını soruyorum verdiginiz linkte bole bişi yok ki ?

    • yasirkula dedi ki:

      OnGUI’de RepeatButton, butona basılı tutulduğu sürece çalışır. Verdiğim UI linkinde ise “Bir UI Elemanına Basılı Tutulduğu Sürece Yapılacak Şeyleri Belirlemek (Event Trigger Sistemi)” diye kocaman bir başlık var, yapmayın :/

  102. Özgür dedi ki:

    cok ozur dilerim pardon sadece buton la ilgili olanlara bakmısım k.b sabrınız için teşekkürler 🙂

  103. umut dedi ki:

    3d max de çizdiğim bir objeye unityde mesh collider attım ama sahnede iki mesh collider lı objem var ve bunlar birbirleri içerisinden geçip gidiyorlar. Is Trigger işaretli değil. Box collider falan deneyince çalışıyor ama iki mesh obje kendi içlerinde çalışmıyor sorun ne sizce.

  104. MK dedi ki:

    hocam öncelikle site çok güzel ve gerçekden baya işe yarıyor ondan dolayı teşekkür ederiz bi sorunum var direk tablete .apk yı atınca your hardware does not support this application sorry(donanım uygulamayı desteklemiyor) diyo samsung tablet 4.10 sürm android 4.0.3 acaba ünity remote gibi programmı yüklemek gerek tablete direk apkyı atınca olmuyomu acaba ? SAYGILARIMLA

    • yasirkula dedi ki:

      Tablete direkt APK atabilirsiniz, bu bir sıkıntı oluşturmaz. Unity’de Player Settings-Other Settings altında yer alan “Minimum API Level”ın değerini düşürebiliyorsanız düşürmeyi deneyin derim. Olmuyorsa malesef fikrim yok.

  105. umut dedi ki:

    İyi akşamlar herkese. Kısa bir sorum olucak. Yapıcağım oyunun arkaplandada çalışmasını istiyorum yani atıyorum oyuncunun parası her saatte 10 artıcak diyelim. Oyunu kapattıgındada arkaplanda onun artmasını istiyorum. Sizce nasıl yaparım. Bildiğiniz bir döküman varmıdır ?

    • yasirkula dedi ki:

      Ben oyunun arkaplanda çalışmasının mümkün olduğunu sanmıyorum (bilen biri varsa yorum yazabilir). Oyun kapanmadan önce o anki tarihi (Date) bir şekilde kaydedip oyunu yeniden açınca mevcut tarih ile eski tarih arasındaki farka bakabilirsiniz belki.

      • MK dedi ki:

        bi server üzerinden ancak olur hocanında dediği gibi oyunun kapanmaması gerekir server üzerinden sistem acık kalır oyuncu sisteme girer …

  106. Mehmet dedi ki:

    Merhaba
    Ben açılır menu yapmaya çalışıyorum. Şimdi x e bastığım zaman Menu açılıyor ama tekrar bastığım zaman kapanmıyor ve else eklersem açıldığı gibi kapanıyor.Sorun ne olabilir?

    void Update () {
    if (Input.GetKeyDown (KeyCode.X)) {
    canvas.enabled = true;
    }

    • yasirkula dedi ki:

      canvas.enabled = !canvas.enabled;

      • Mehmet dedi ki:

        Tekrar’dan merhaba
        Aslında bu sorunu uğraşla çözmüştüm yine de teşekkürler. Bu sefer ki sorunum karaktere animasyon ekliyorum geriye doğru gidiyor yürüyüş animasyonu aktif oluyor ama ileriye doğru giderken animasyon takılıyor, oynamıyor nedeni ne olabilir?
        public int anima;

        Update içine :
        if (Input.GetKey (KeyCode.W)) {
        transform.Translate (-0.3f * Time.deltaTime, 0, 0);
        anima = 1;

        if (anima == 1) {
        anim.Play (“Walk”);
        }
        }
        if (Input.GetKey (KeyCode.S)) {
        transform.Translate (0.3f * Time.deltaTime, 0, 0);
        anima = 1;

        if (anima == 1) {
        anim.Play (“Walk”);
        }
        }

      • yasirkula dedi ki:

        Animasyon Loop yapacak şekilde ayarlanmamış olabilir, bilemiyorum.

  107. EMRE dedi ki:

    Merhaba yasirkula unity hakkında öğrenmem gereken çoğu şeyi öğrendim kısaca kod yazabiliyorum ama sizin verdiğiniz kod arşivi yeterli gelmeyebiliyor daha çok kodun açıklandığı bir kaynak önerebilirmisiniz yada unity kod arşivinizi nezman güncelleyeceksiniz?

  108. mehmet dedi ki:

    Merhaba
    İmport ettiğim 3d model var.
    lookat ile düşmana bakmasını istiyorum ama düşmana değil de başka bir yöne bakıyor. bunu nasıl düzeltebilirim?

    • yasirkula dedi ki:

      Objenin pivot’unun Z ekseni (mavi ok) ileri yönü göstermeli. 3D modeli bir modelleme programında açın ve pivotun Z ekseni ileri bakacak şekilde olana kadar pivotu döndürün.

  109. umut dedi ki:

    Iyi aksamlar. Ben unityde geliştirdiğimiz oyunlara uygulama içi satış nasıl koyarız diye merak ediyorum. elinizde bir döküman varsa paylaşırsanız yada internette ingilizce olarak nasıl aratmam gerektiğini söylerseniz çok sevenirim. Tesekkürler…

  110. umut dedi ki:

    Bir gameObjeye getcomponent ile mesh collider eklemek istiyorum ama bunun öncesinde o objede mesh collider olup olmamasına bakmam lazım bunu nasıl yaparım

  111. Ahmet dedi ki:

    Resident evil da ki gibi, karakter scripti yazmaya çalışıyorum. https://www.youtube.com/watch?v=GjxDCK56E0M — gibi.. Ne yapmam gerek?

  112. Reha dedi ki:

    Merhaba ben bu işte yeniyim unity 3d öğrenmeye çalışıyorum şu anda bir aracı bir plane üzerinde hareket ettirmeye çalışıyorum aracın tekerlerine create empty oluşturup whell collider ile zemine okutmaya çalışıyorum fakat benim sorunum create empty oluşturup ona whell collider verdiğim zaman whell colliderin çizgilerini göremiyorum ok çizgilerini görebiliyorum yönlendire biliyorum fakat göremiyorum göremediğim için tekerlere göre boyutlandırıp yerleştiremiyorum bu çizgileri nasıl görünür yapabilirim yardımlarınızı bekliyorum.

  113. umut dedi ki:

    Merhablar. Acil yardıma ihtiyacım var 🙂 şuan yaptığım projede elimde mevcut taşlar var. Bu taşlarla drag & drop yapmam lazım . Drag yapabiliyorum ama drop olayı çok sıkıntı yarattı bana. Öncelikle sahnede taşların düzgün bir şekilde oturması için taşlarla aynı ebatta holder objeleri oluşturdum. Fare ile hangi holder’ın üstüne gelirsem taş o holder’ın içerisine yerleşicek ama bunu yapamadım. Elinizde bununla ilgili döküman varsa paylaşırsanız çok sevinirim. Şimdiden teşekkürler.

    • yasirkula dedi ki:

      NGUI’de drag & drop için component’ler var diye biliyorum. Youtube’a Unity drag & drop tutorial yazarsanız eminim kaynaklar çıkacaktır.

  114. umut dedi ki:

    Unity de sahneye herhangi bir gameObject instantiate ederken bu fonksiyona ait prefab parametresini kodla hierarchy panelinden nasıl çekerim bir bilginiz varmı

  115. umut dedi ki:

    İyi günler. Ben bir sahneden bir sahneye player yollamak istiyorum. Playerprefs ile yapmaya çalıştım ama kaydedeceğim bir variable değil nesne. Player classından üretilmiş bir nesne. Ben bu playerı baska bir scene den nasıl çekebilirim. Teşekkürler iyi günler.

  116. umut dedi ki:

    Hocam kolay gelsin tekrardan ben soru soruyorum 😦 bıktırdım sizi kusura bakmayın :). Camera controll scripti yazıyorum ama yapmak istediğim hassasiyeti sağlayamadım. Fareyi ekranda sağa hareket ettirdiğimde ekranın en sağına gelince duruyor. bunu nasıl unlimited yaparım. Cursor mode dökümanlarını falan okudum ama istediğim şeyi bulamadım. Şuan yapmaya çalıştığım şey kameranın mouse’un ucuna bakmasını sağlamak. Cameradan fareye bir ray yolladım ve cameranın transformunu ray’in direction’ına lookat yaptırdım. Gayet güzel çalışıyor ama belli bir alanda sağ ve sola bakabiliyorum. Sorunumu anlatabildimmi bilmiyorum ama bildiğiniz yardımcı olabilecek bir döküman varsa paylaşırsanız sevinir. 🙂

  117. ekrem dedi ki:

    abi level atlamayı nasıl yapacaz biliyorsan anlatırmısın

  118. umut dedi ki:

    karakter animasyonlarında merdivende yukarı yürüme animasyonunu yapmaya calışıyorum elimde animasyonlar mevcut ama merdivenin yüksekliğine göre animasyonu kodla nasıl ayarlarım. Elinizde döküman varsa paylaşabilirmisiniz.

    • yasirkula dedi ki:

      Zor bir iş gibi duruyor. Character Controller component’i belli bir basamak yüksekliğine sahip merdivenlere çıkabiliyor; belki (belki) onu kullanabilirsiniz.

  119. umut dedi ki:

    Herhangi bir web sitesini unity içerisinde çağırmak istiyorum ama. Herhangi bir browserda açmayacak unity içerisinde açacak. İnternetteki çoğu dökümanı okudum. WWW class’ına baktım. Mevcut fonksiyonlara baktım. uWebkit diye bi package buldum ama oda paralı. Bildiğiniz bir kaynak varmıdır ?

  120. umut dedi ki:

    Şuan uğraştığım projede et kesmek için bir animasyon var ben her fareye basışımda o animasyonun çalışması lazım. ama ikinci basısımda animasyonun bitmesini bekliyor. Bunu animasyonun speed’ini arttırmadan nasıl yapabilirim.

  121. Sinan dedi ki:

    Merhaba
    Oluşturduğum Karakterin içine handgun yerleştirdim. Handgun içine ise particle ile ateş efekti yapmıştım. Unity 5.1 de istediğim gibi çalışırken, yüklediğim unity 5.2 ile namlu nun ucunda ki particle efekti, yerleştirdiğim yerde değil de başka bir yer de oynuyor. Particle sistemi değişti sanırım ama anlamadım. Sorun ne olabilir?

    • yasirkula dedi ki:

      Inspector’da değeri “World Space” veya “World” gibi olan bir yer(ler) görürseniz ora(lar)ın değer(ler)ini değiştirmeyi deneyin.

  122. burak yılmaz dedi ki:

    merhaba

    bir objeyi belli bir süre sağa belli bir süre de sola olucak şekilde döndürmek istiyorum ve bunu sonsuz döngü şeklinde sağ sol sağ sol diye tekrar etmesini bunun için şöyle bir kod yazdım ama çalıştıramadım yardımcı olabilirmisiniz?
    {

    int b=0 ;

    public int hiz = 100;
    public int hiz2 = 10;

    void fonk1 () {

    {
    b = (int) (b + Time.deltaTime);
    do {
    transform.Rotate (Vector3.forward * hiz * Time.deltaTime);
    }
    while (b == 10);
    }
    b = 0 ;
    fonk2 ();
    }

    void fonk2(){
    {
    b =(int)( b + Time.deltaTime);
    do {
    transform.Rotate (Vector3.back * hiz2 * Time.deltaTime);
    }
    while (b == 10);
    }
    b = 0;
    fonk1 ();

    }

    void Start(){
    fonk1 ();
    }

    }

    kod çalışıyor ama sadece başlangıçta çalışıyor ve 10 saniye boyunca dönmesi gerekirken aniden dönüyor öyle kalıyor daha sonra tekrar dönmüyor
    ayrıca stackowerflowexception diye hata veriyor..Update fonksiyonunda çalıştırırsam oyun donup kalıyor.

    • yasirkula dedi ki:

      Şu şekil olmalı:

      IEnumerator fonk()
      {
      while(true)
      {
      son satır hariç fonk1’in kodu buraya
      yield return null;
      son satır hariç fonk2’nin kodu buraya
      yield retun null;
      }
      }
      void Start()
      {
      StartCoroutine(fonk());
      }

      Yalnız sizin fonk1 ve fonk2’niz de hatalı malesef. Bence fonk1’in içeriğini (son satır olmadan) Start’a yazın ve o Rotate işlemi istediğiniz gibi olana kadar kodu düzenleyin. Sonra aynı şeyi fonk2’ye yapın.

  123. burak yılmaz dedi ki:

    Dediğiniz gibi düzenledim kodu ama while(b==10) kısmı çalışmıyor sanırsam, zira “10” değerini çok yüksek bir değer versem bile sağa yada sola dönme süresi değişmiyor ikiside sırayla çok hızlı bir şekilde çalışıyor.Dönme hızını hiz ile hiz2′ ye eşit değer verirsem obje dönmüyor yani dönüyor aslında ama sağa ve sola aynı süreyle döndüğünden dönmüyor gibi sabit kalıyor.Nasıl bir düzenleme önerirsiniz?

    • yasirkula dedi ki:

      while’ın içinde yield return null; çalıştırabilirsiniz.

      • burak yılmaz dedi ki:

        Tam olarak ne yapacağımı anlayamadım bir kaç değişklik yaptım ama yine olmadı sizi de uğraştırdım baya bi teşekkür ederim ilginiz için ama yine bi bakar mısınız son hali bu kodun ;

        {
        float b=0 ;

        public int hiz = 10;
        public int hiz2 = 10;

        IEnumerator fonk()
        {
        while (true) {
        {

        do {
        b =(int)( b + Time.deltaTime);
        transform.Rotate (Vector3.forward * hiz * Time.deltaTime);

        } while (b == 30);

        b =0;

        }
        yield return null;
        {

        do {
        b =(int)( b + Time.deltaTime);
        transform.Rotate (Vector3.back * hiz2 * Time.deltaTime);
        }
        while (b == 3);

        b=0;
        }
        yield return null;
        }
        }
        void Start()
        {
        StartCoroutine(fonk());
        }}

      • yasirkula dedi ki:

        do-while’ı şu şekil yapabilirsiniz:

        do {
        	b = b + Time.deltaTime;
        	transform.Rotate (Vector3.forward * hiz * Time.deltaTime);
        	yield return null;
        } while (b < 3);
        
  124. Soysal dedi ki:

    Hocam Ben unity ile websitesinin android uygulamasını yapmak istiyorum websitedeki verileri nasıl cekebilirim ?

  125. Barış Aycin dedi ki:

    Paylaşımlarınız için teşekkür ederim. Emeğinize sağlık. Sizin de paylaşımlarınız sayesinde ilk mobil uygulamam Bigbang3D Labyrinth Google Play de yayında 🙂 Destek için indirip deneyebilirsiniz. Umarım beğenirsiniz.

    Oyun Linki: https://play.google.com/store/apps/details?id=com.bagames.Bigbang3D.Labyrinth&hl=tr

  126. Yunus Emre Acar dedi ki:

    selam ben bir soru için burdayım ben kayıt oldum unity’e unity açtım epostayı ve şifreyi yazdım ama service not available,please try agin later yarım edin lütfen

  127. unity dedi ki:

    Hocam unity de 3d endless tarzı yarış oyunlardaki gibi aracın dönüşünü nasıl sınırlayabiliriz yani sonsuz bir yolda sağa sola dönünce yumuşak bir şekilde max 45 derece dönebilsin.

    • yasirkula dedi ki:

      Yumuşaklık için Mathf.Lerp, Vector3.Lerp veya Quaternion.Lerp işinize yarayabilir. Açıyı kısıtlamayı ise kodda yapmalısınız. Örneğin kameranın localEulerAngles’ının y değerinin daima 45’ten küçük ve -45’ten büyük olmasını sağlayabilirsiniz (Mathf.Clamp işinize yarar).

  128. Mert Çetin dedi ki:

    Merhaba birşey soracaktım soru 1: C# kitabı alacağım ama kitabın arkasında bunlar yazıyor unity 3d için hangini bilmem lazım.

    Kitapta yer alan başlıca konu başlıkları şunlardır
    -Programcılık Mantığı
    -Karar Yapıları
    -Döngüler
    -Metotlar
    -Sayısal ve Sözel Metotlar
    -Diziler
    -Sıkça Kullanılan Algoritmalar
    -Temel Kavramlar
    -Yazılım Geliştirme Süreci
    -Kod Yazma & Editörler
    -Temel Algoritma Bilgisi
    -Visual Studio 2015 Arayüzüyle
    -.NET Framework & C#
    -Değişkenler & Veri Giriş-Çıkışı
    -Operatörler
    -Algoritma Geliştirme Mantığı
    (Tanıtım Bülteninden)

    • yasirkula dedi ki:

      Object oriented bir dille (c#, java vb.) alakalı herhangi bir kaynak illa ki Unity’de de o ya da bu şekilde yardımcı olur. Listelediğiniz konular arasında if koşullarıyla çalışmak, while/for loop’larıyla çalışmak, değişkenler, fonksiyonlar (metod), operatörler, algoritma mantığı gibi faydalı şeyler var. Eğer internet sıkıntınız yoksa bu konuları internetten ücretsiz video dersler ile de anlayabilirsiniz ancak kitap daha iyi olur derseniz buna da tabi ki saygı duyarım.

  129. Mert Çetin dedi ki:

    Hocam şimdi ben internetten bir sayfada adamın biri unity 3d için KODLAP C# 6.0 önermiş bende gitim 45 tl verdim aldım eve vardım içim yandı kitap ilk öğrenim deyil doğruca 2 öğrenim kitabı cıktı adam doruca pırogramlamadan başlamış bana yardımcı olurmusunuz bana ilk öğrenim kitabı lazım bana C# yi öğreten bir kitap lazım öncelikle zaten 2 öğrenimi almışım ilk öğrenimi alayım 2 öğrenim kitabı zaten var. hocam birşeydaha c# 6.0 volkan aktaş yazdığı kitabı inceleseniz bana kitabın sadece öğrene bilceğim taraflarını yazsanız bende fazla gelir yok bu kitabıda zor aldım kitabın arkasında yazanlardan hangine başlayım bana bi kitabı araştırıp söyleseniz olurmu hocam şimdiden sağolasın hocam. gerekirseyine parabiriktirip başka bir kitap alırım kitabın linkini atarsanız sevinirim hocam.

    • yasirkula dedi ki:

      Dediğiniz kitaptaki görsel konular (diyaloglar, formlar vs.) işinize yaramaz ancak değişkenler, fonksiyonlar (bir başka deyişle metotlar), veri tipleri, struct, enum, class, operatörler, kontrol, döngüler, hata ayıklama, diziler, Dictionary vb. çoğu konu işinize bir şekilde yarar. Bu temelleri aldıktan sonra yine de Unity’nin kendi kütüphanesini öğrenmeye uzunca bir vakit ayırmanız gerekecek. Ben C# kitap okumadığım için bir öneri yapamıyorum.

  130. Mert Çetin dedi ki:

    hocam bide kitabın arkasında sizin saydıklarınızın azı var ( sabitler ve değişkenler.operatörler.metotlar var) (fonksiyonlar yok.algoritma yok.

  131. unity dedi ki:

    Mathf.Clamp işe yaradı hocam saolun birde 3d endless race oyunlarda kamera hep dümdüz yolu takip eder ya ama bende sizin endless örneğinde olduğu gibi arabayı takip ediyor ne yaptıysam olmadı nasıl yaparız kamera hep sabit yolu izlesin aracın hızına bağlı olarak.transform.Translate ile basitçe kamerayı düz ilerletebiliyorum ama yere doğru baktığından yerin içine giriyor mecbur:)

  132. Mert Çetin dedi ki:

    Hocam yani ben bu kitaba boşuna mı para vermişim ama c# ilk öğrenim kitabını bitirdikten sonra bu kitaba geçsem benim aldığıma daha da fazla öğrene bilirim değilmi yani kitap işe yaramayacak diye birşey yok.

    • yasirkula dedi ki:

      Kitap illa ki işinize yarar (çok yaramayabilir); sizin ihtiyacınız olan şeyler veri türleri, syntax ve temel kurallar. Kullanacağınız fonksiyonlar hep Unity’nin kendi fonksiyonları olacak.

  133. Mert Çetin dedi ki:

    Hocam yani bana bir link verseniz bana bunlar önemli hocam .. int nedir. class nedir noktalamalar nerde kulanılır. bunun gibi dersleri bulamıyorum adam doruca yazıyor ne olduunu anlamıyor insan bana noktalamaları gösterecek bana bunlar lazım. yardımcı olun hocam.

  134. djemrelakEmre dedi ki:

    Kod arşivini en son3 yıl önce güncellemişsiniz daha ayrıntılı kodlar için nereye başvurmam lazım ingilizcem lise seviyesinde

    • yasirkula dedi ki:

      Unity’nin kendi video derslerini tavsiye ederim, ben izledim ve bayağı beğendim. Türkçe kaynak ise bilmiyorum, ne zamandır Türkçe kaynak araştırmıyorum.

      • djemrelak dedi ki:

        Unity nin videolari sinirli sayida degilmi inglizce bile olsa su kod suna yariyor su kod bunu isliyor tarzi birsey yokmu 3yildir sizi takip ediyorum kod arsivinizi ezberledim 1-2 kucuk tarzda oyun da yaptim.Yani istegim daha ileri kod bilgisi edinmek tesekkurler cevabiniz icin

      • yasirkula dedi ki:

        Evet Unity’nin video dersleri çok çok fazla değil. Ben video ders izleyerek, Unity’nin forumlarında rastgele konular okuyarak ve google’a aklıma takılan soruları sorarak neyin ne işe yaradığını öğreniyorum. İsterseniz Unity Script Reference’yi açıp bir başlıktan başka bir başlığa zıplayarak da yeni şeyler öğrenebilirsiniz.

  135. fullmarketadmin dedi ki:

    abi unity script arşivine alternatif link ekermisin

  136. Barış dedi ki:

    In app purchase anlatmayı düşünüyor musunuz?

  137. Mehmet Samsunlu dedi ki:

    Hocam, günlerdir uğraşıyorum, Android için Unity 2D ile karakteri havada 2 kez zıplatmayı başaramadım. Sadece 1 kere zıplatabiliyorum. 2 kere zıplatmam için hangi kodları yazmak gerekiyor. Yardımlarınız için şimdiden teşekkür ederim. Saygılar.

    • yasirkula dedi ki:

      “ziplamaSayisi” adında int değişkeniniz olur. Karakter her zıpladığında bu değeri 1 artırırsınız. Eğer bu değer 2’ye büyük eşitse zıplama yapmazsınız. Karakter yere her değdiğinde bu değişkeni sıfırlarsınız.

      • MehmetSamsunlu dedi ki:

        Bana çift zıplatma kodu verebilir misiniz. Bu işte henüz yeni olduğum için hala çözemedim. Klavyede çift zıplatabiliyorum. Android’de olmuyor. Yaklaşık bir aydır uğraşıyorum. Android için çift zıplatma kodu gerek. Yardımınız için şimdiden teşekkürler.

      • yasirkula dedi ki:

        Klavyede zıplama tuşuna basınca yapılan şeyleri Zipla() isminde bir fonksiyona taşıyın. Android’de zıplama tuşuna basılınca da yine bu Zipla fonksiyonunu çağırın.

  138. Mehmet Samsunlu dedi ki:

    olmuyor, bilgim az ondan. Klavye kodunu gönderiyorum. Mobil ekrana dokununca çift zıplama olsun istiyorum. Klavye kodlarını gönderiyorum. Mobil için Yardımcı olursanız mutlu olacağım.


    // Update is called once per frame
    void Update () {
    if (eggHurtTime == -1)
    {

    if (Input.GetButtonUp (“Jump”) && jumpsLeft > 0)
    {
    if (myRigidbody.velocity.y eggHurtTime + 2)
    {
    Application.LoadLevel(Application.loadedLevel);
    }
    }
    }

  139. Example dedi ki:

    Kaynaklar gerçekten güzel teşekkürler..

  140. Mehmet Samsunlu dedi ki:

    Merhaba hocam, beni büyük bir dertten kurtardınız. Teşekkürler. Son bir problem çıktı. Zıplamalar tamam. Şimdi, skor ve highskor yaptım. Gayet güzel çalışıyor. Fakat skor tabelasında karakter engele çarptığı zaman skoru sayımı durması gerek. Fakat benim skor sayımı 3-5 saniye daha devam ediyor, sonra duruyor. Karakter engele değdiği zaman skor sayımını nasıl hemen durdurabilirim. Değerli yardımlarınız için çok teşekkürler.

  141. ahmet dedi ki:

    Merhabalar Hocam kusura bakmayın rahatsız ediyorum.Bir sorum olacaktı.Hocam elimde bir kuş ve animasyonu var bunun sağa sola belli iki uzaklık arasında uçmasını nasıl sağlayabilirim.Yani sağa doğru biraz uçsun sonra dönüp geri geldiği yere doğru uçsun.Bunu nasıl yapabilirim.Şimdiden Teşekkürler.

    • yasirkula dedi ki:

      Mecanim ile bir karaktere herhangi bir yönde hareket animasyonu verilebiliyor. Siz Mecanim ile kuşa sadece ileri yönde gitme animasyonu verin. Kuşu döndürmeyi scriptle yapın. Bir miktar (random) bir süre geçtikten sonra kuşun y eksenindeki eğimini 180 derece değiştirmeniz yeterli olacaktır.

  142. Mehmet Samsunlu dedi ki:

    Üstadım merhaba, Unity 2D ile High Score’yi Main Menu de sağ üst köşede gösterebiliyorum. Fakat bir türlü oyun bittikten sonra ki skor ana menude 0 (Sıfır) olarak görünüyor. High Score’da problem yok. Fakat oyun bittikten sonraki skor, oyun ekranında mesela 12 ise Ana Menüde devamlı 0 (Sıfır) çıkıyor. Bu çok önemli yardımınız için şimdiden teşekkürler. Saygılar. Score Manager Script’im aşağıda:

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;

    public class ScoreManager : MonoBehaviour {

    public Text scoreText;
    public Text hiScoreText;

    public float scoreCount;
    public float hiScoreCount;

    public float pointsPerSecond;

    public bool scoreIncreasing;

    // Use this for initialization
    void Start () {
    if (PlayerPrefs.HasKey(“HighScore”))
    {
    hiScoreCount = PlayerPrefs.GetFloat(“HighScore”);
    }

    }

    // Update is called once per frame

    void Update () {

    if (scoreIncreasing)
    {
    scoreCount += pointsPerSecond * Time.deltaTime;
    }

    if (scoreCount > hiScoreCount)
    {
    hiScoreCount = scoreCount;
    PlayerPrefs.SetFloat(“HighScore”, hiScoreCount);
    }

    scoreText.text = “Score: ” + Mathf.Round (scoreCount);
    hiScoreText.text = “High Score: ” + Mathf.Round (hiScoreCount);

    }
    }

    • yasirkula dedi ki:

      Benim tavsiyem PlayerPrefs.SetFloat(“HighScore”, hiScoreCount); fonksiyonunu Update’te sürekli çağırmak yerine oyun bitince tek seferlik çalıştırın. Bu fonksiyonu çağırdıktan sonra bir de PlayerPrefs.Save(); fonksiyonunu çağırmayı deneyin.

      Eğer scoreCount değişkenine anamenüden PlayerPrefs ile erişmeye çalışıyorsanız o değişkeni de menüye dönmeden önce PlayerPrefs.SetFloat ile kaydetmeniz lazım. Oyundan çıkıp girince o değişkenin değerinin 0 olması önemli olmayacaksa o zaman değişkeni static yapıp (PlayerPrefs ile uğraşmanıza gerek kalmadan) ona daha rahat bir şekilde erişebilirsiniz.

  143. Mehmet Samsunlu dedi ki:

    Teşekkürler üstadım. Bilgileriniz çok yararlı oluyor. Başarılarınızın devamını dilerim. Sizden bir ricam daha olacak. Ben oyunumda bazı düzeltmeler yaptıktan sonra tekrar cihazıma atıyorum. Fakat HighScore resetlenmiyor. Yeniden cihazıma attığım zaman oyundaki HighScore’nin 0 olmasını istiyorum. Ne yapmak gerekir. Yardımlarınız için tekrar teşekkürler. Saygılar.

    • yasirkula dedi ki:

      Oyunu silerseniz PlayerPrefs’leriniz de resetlenir. Oyunu silmeden update ettiğiniz vakit PlayerPrefs aynı kalıyor, bunu engellemenin yolu var mı bilmiyorum. Eğer isterseniz oyun her açıldığında PlayerPrefs’i elle resetleyebilirsiniz ama bu durumda oyunu update etmeden yeniden başlatsanız bile herşey resetlenir.

  144. Mehmet Samsunlu dedi ki:

    Yardımlarınız için teşekkürler. Platform oyunumu Google Play’de bir kaç hafta sonra yayınlayacağım. Para kazanmak için ne gibi bir yol takip etmek gerekir. Sadece yayınlayıp beklemek mi, yoksa bir reklam şirketiyle işe başlamak mı. Bir de Unity 5.2.0 cracklı kullandım. Bir problem olur mu, olursa Unity hangi sürümü ile yayınlayabilirim. Değerli bilgileriniz için şimdiden teşekkürler. Saygılar,

    • yasirkula dedi ki:

      Para kazanmak için izlenecek yolu ben de bilmiyorum, şu an pek para kazanmıyorum ben de. Crack’li sürüm kullanmak ise elbette ki sorun çıkarabilir, illegal birşey sonuçta. Tavsiyem son sürüm ücretsiz versiyonunu kullanmanız.

  145. Mehmet Samsunlu dedi ki:

    Üstadım bir sorum olacak. Leveldeki skorumun, level atlayınca da 0’dan değil de, kaldığı yerden devam etmesini istiyorum. Yani level biterken skorum mesela 120 ise, level atlayınca yeni levelde 121 olarak devam etmesini istiyorum. Mümkün müdür? Yardımlarınız için tekrar teşekkür ediyorum. Saygılar.

  146. Barış dedi ki:

    public class HareketeGec : MonoBehaviour {
    public int BenimSayim = 77;
    void OnTriggerEnter (Collider temasNesnesi)
    {
    if (temasNesnesi.gameObject.name == “PLAYER”) {
    if(PlayerPrefs.GetInt(“baris”)=1 ){
    Debug.Log(BenimSayim);
    }
    }
    }
    }
    İkinci if koşulundaki 1′ in solunda bir tane eşittir var kodu kaydettiğimde böyle bir hata çıkıyor “The left-hand side of an assignment must be a variable, a property or an indexer” eğer onu == yaparsam hata düzeliyor anlamadım neden illa iki tane eşittir işareti koydurmak istemesini beni aydınlatırsanız sevinirim şimdiden teşekkürler.

    • yasirkula dedi ki:

      if’in içinde “değişkene değer vermek”ten ziyade “değişkenin değerini kontrol etme” yapıyoruz. “Değer vermek” için =, “değeri kontrol etmek” için ise ==, >=, <=, >, < şeklinde semboller belirlenmiş. Yani değer verecekseniz =, değeri kontrol edecekseniz == yapıyorsunuz ki compiler ikisi arasındaki farkı algılayıp ne yapmak istediğinizi anlayabilsin.

  147. ahmet dedi ki:

    hocam merhabalar.Hocam bir sorum olacaktı ben unity ye birşeyler atıyorum ekrana çalıştır diyorum ama hem pause hem play butonu aktif oluyor.pause bi daha tıkladıktan sonra play tek başına aktif oluyor ve oyun ekranı göstermesi gerekeni o zaman gösteriyor.Acaba problem nedir.Şimdiden teşekürler

  148. ahmet dedi ki:

    Hocam tamam bu problemi çözdüm window ekranından ligtining sekmesini açtım resetledim ardından sun kısmına direction lightı ekledim problem çözüldü.

  149. ahmet dedi ki:

    Ama başka sorum olacak hocam ben sahneler arası geçiş yaparken geçtiğim sahne karanlık bir şekilde gözüküyor.Sorun nedir acaba.Her iki sahnede de direction light var ama sahneler arası geçiş yaparken karanlık oluyor.unity 5.2.2 versiyonunu kullanıyorum.Şimdiden teşekürler.

  150. Mehmet Samsunlu dedi ki:

    Üstadım merhaba, oyunum 2D, 4 Level’den ibaret. Her Level’de karakter engele değince GameOver ekranı çıkıyor ve Play butonuna basıp tekrar devam ediyor. Buraya kadar güzel. Fakat 4. Level’de oyunumu bitirmek için nasıl bir kod gerek (C Sharp). Çünki bitiş nesnesi koyunca değince yine Game Over ekranına dönüyor. Ben bitişe gidince Finish ekranımın çıkmasını istiyorum. Değerli yardımlarınız için şimdiden teşekkürler. Saygılar.

  151. Mehmet Samsunlu dedi ki:

    Hocam ben yanlış anlattım, kusura bakma. Oyun sadece 1 Level’den ibaret. Uzun bir platform oyunu. Karakterim engele değince GameOver sayfasına gidiyor. Burası tamam. Fakat sonunda oyunu nasıl bitireceğim. Sıkıntı orada. Karakterim en sonunda Finish çizgisine değince Ana menuye dönmesini istiyorum. GameOver sayfasına gitmesin yani. Bununla ilgili nasıl bir kod olabilir. Saygılar.

  152. Mehmet Samsunlu dedi ki:

    Hocam Unity Android Oyunlarınıza AdMob Reklamları Eklemek dersiniz var. Fakat AdMob sadece reklamı indirmeye para ödüyor. Reklam gösterimine para ödemiyor. Benim Unity 2D oyunuma StartApp reklamı eklemek istiyorum. Böyle bir dersiniz var mı, yardımcı olabilir misiniz.
    İkinci sorum, Play Store’ye eklemeden önce oyunuma StartApp reklamlarını eklesem olur mu. Her iki soruma da yardımcı olabilir misiniz. Şimdiden teşekkürler. Saygılar.

    • yasirkula dedi ki:

      StartApp kullanmadığımdan bu konuda yardımcı olamayacağım ancak reklamları oyunu yayınlamadan önce hallederseniz tabi ki daha iyi olur.

  153. Barış dedi ki:

    Tekerleğe dönme animasyonu ekleyecektim ama aşağıya ve yukarıya doğru kayıyor,animasyonu objenin merkezi etrafında döndürdüğüm halde oluyor. Nasıl aşağıya ve yukarıya gitmeden animasyon yapabilirim?

    • yasirkula dedi ki:

      Wheel Collider component’ine sahip objeyi rotate etmeyin. Onun yerine Wheel Collider ile teker mesh’ini ayrı ayrı objelerde tutun ve teker mesh’ini tutan objeyi rotate edin. İlaveten, tekerlere Rigidbody vermeyin. Sadece arabanın en parent objesinde Rigidbody olsun.

  154. Barış dedi ki:

    Wheel Collider’da yuvarlak şey çıkmıyor sizce neyden dolayı olabilir ? unity sürümüm: 5.1.2

    • yasirkula dedi ki:

      O objede ya da onun parent objelerinden birinde Rigidbody olmalı. Benim tavsiyem Rigidbody’yi sadece arabanın en parent objesine vermeniz.

  155. Tayfun dedi ki:

    Bir kaç level hazırladım ve müzik attım da leveller arası geçiş yapıldığı zaman müzikler kesiliyor, kesilmeden devam etmesi için ne yapabilirim?Örneğin level 1 de çalan müziği level 2 ye geçildiği zaman devam etmesi?

  156. Mehmet Samsunlu dedi ki:

    Merhaba üstadım. Uygulamama Admob reklamları eklemek istiyorum. Insanlar uygulamamı indirince Admob para veriyor mu, ya da reklam gösterime mi para veriyor. Açıklama yapabilir misiniz bu konuda bilgim yok ve internette çeşitli anlatımlar var. En doğrusu sizden öğrenmek istiyorum. Saygılar.

  157. Mehmet Samsunlu dedi ki:

    Hocam, merhaba. Ben Unity 2D ‘de küçük animasyon yaptım. Oynatınca, animasyon bitince durması gerekiyor. Fakat animasyon devamlı başa dönüp devamlı tekrar ediyor ve hiç durmuyor. Bu animasyonu bittiği zaman nasıl durdurabilirim. Değerli çözümlerinizi bekliyorum. Saygılar.

    • yasirkula dedi ki:

      Animasyonu seçince Inspector’da “Wrap Mode” değişkeni gözüküyorsa onu “Clamp Forever” yapın. “Loop Time” değişkeni gözüküyorsa onun başındaki işareti kaldırın.

  158. Barış dedi ki:

    Oyunumda bir şehir var ve bu şehrin kaldırımlarında yürüyen insanlar yapmaya çalışıyorum. Karakterleri Adobe Fuse ile yaptım mixamo ile animasyon falanda verdim buraya kadar hiç sıkıntı yok fakat onlar benim oluşturduğum boş gameobject i takip ediyor gameobject e animasyon veriyorum ama sanki falso alırmış gibi gidiyor doğal olarak karakterler de kaldırımdan değil, yoldan gitmeye çalışıyor.Sanırım falso alır gibi gitmesinin sebebi hem x hem z ekseninin kullanılması.
    gameobject e düzgün animasyon vermek için elinizde işimi görecek kod falan varsa vermenizi rica ediyorum sizden.

    • yasirkula dedi ki:

      Karakterin düz gitme animasyonu yanlara doğru seyirtiyorsa bunu Unity içerisinden çözebiliyorsunuz. Nasıl olduğunu söyleyebilmek isterdim ama hatırlamıyorum, Unity’nin bir Mecanim videosunda görmüştüm sadece (oradan aklımda kalmış). Benim elimde animasyonla alakalı birşey yok ama ileriki zamanlarda Unity’nin Asset Store’daki “Raw Mocap Data for Mecanim” animasyonlarını kullanmayı deneyebilirsiniz, belki orada daha az sıkıntılı animasyonlar vardır (bu arada, bahsettiğim video derste de bu asset kullanılıyordu).

  159. Mehmet Samsunlu dedi ki:

    Arkadaşlar emekli olup 61 yaşından sonra Yasir kardeşimin de yardımlarıyla ilk oyunum yayınlandı. Indirip değerli yorumlarınızı yaparsanız sevinirim. Saygılar. Oyunun Adı: Egg Stone Link:
    https://play.google.com/store/apps/details?id=com.BMGames.EggStone

  160. Barış dedi ki:

    Hocam OnTriggerEnter fonksiyonu arada çalışmıyor sebebi ne olabilir? Sizde de arada çalışmadığı oluyor mu?

    • yasirkula dedi ki:

      Temas eden 2 objeden en az birinde Rigidbody olduğu sürece bende çalışıyor. Bu objelerden birisi mermi gibi çok hızlı bir obje mi? Öyle bir durumda temas es geçilebiliyor.

  161. evliya dedi ki:

    iyi günler hocam ya derlseri güncellemişsiniz ama 1 ay önceki derslerden başka birşey görmedim yada ben farketmedim lütfen güncellediğiniz konuları sayfanın başına not düşerseniz sevinirim en azından neyi güncellediğinizi daha iyi anlayalım şimdiden teşekkür ederim

    • yasirkula dedi ki:

      İlginiz için teşekkür ederim. Bu yazıya yaptığım çoğu güncellemede kendi derslerimi güncelliyorum (en son yazdığım dersleri listeye ekliyorum). Türkçe tutorial piyasasını çok yakından takip edemiyorum, o yüzden diğer linkleri daha ender güncelleyebiliyorum. Ama sonraki güncellemelerde sizin tavsiye ettiğiniz gibi hangi kısımların güncellendiğini yazayım (unutmam umarım :D).

      Eğer sizin tavsiye edebileceğiniz farklı kaynaklar varsa onları da paylaşın, yorumlardaki linkleri de genelde listeye ekliyorum.

      • evliya dedi ki:

        hocam bildiğim tüm kaynakları eklemişsiniz ama ingilizce 140 derslik bir fbs serisi var



        linki burda umarım işe yarar

        bu arada ilginiz için teşekkür ederim

  162. Mehmet Samsunlu dedi ki:

    Merhaba hocam, daha önce unity uygulamamı build ve run yapmıştım. Sonra bilgisayarıma format attıktan sonra Java, sdk manager yükledim. Bir öncekinin aynı işlemlerini yaptım. Fakat bu sefer build yaparken ” failed to re-package resources. see the console for details ” hatası veriyor. Sebebi nedir, defalarca denedim, hata yaptıysam nerede yaptım. Yardımcı olabilir misiniz. Saygılar

    • yasirkula dedi ki:

      Kullandığınız bir plugin’den dolayıdır (Admob?). O pluginin ismini yazıp sonra bu hata mesajını yazın ve google’da arama yapın. Bu hataya çok fazla şey sebep olabiliyor.

  163. ibrahim dedi ki:

    İyi çalışmalar ; kardeşim bizim bir projemiz var unity de harita kontrolü leap motion entegre etmek istiyoruz nasıl yapabiliriz? Projemize leap motion ekleyeceğiz.

  164. Mehmet Samsunlu dedi ki:

    Merhaba, Unity’de yaptığım animasyon devamlı tekrar ediyor. Çok uğraştım, internette aradım ama olmadı. Animasyonun durması gerekirken, sürekli tekrar ediyor. Nerde hata yaptım acaba. Değerli yardımlarınızı rica ediyorum. Saygılar,

  165. ali seren dedi ki:

    merhaba, geliştirilen mobil uygulamanın internet bağlantısı olmadan çalışmamasını sağlayacak yapıyı nasıl oluşturabiliriz. ilgilerin için şimdiden teşekkür ederim.

    • yasirkula dedi ki:

      Oyunun başında internet erişiminin olup olmadığını kontrol edebilirsiniz (bkz. “unity check internet connection”). Dilerseniz bir coroutine ile ya da InvokeRepeating ile periyodik olarak da internet kontrolü yapabilirsiniz (mesela her 2 dk’da bir).

      • ali seren dedi ki:

        teşekkürler, inceledim ve tam da istediğim gibi oldu. ancak bir de şunu nasıl yapabileceğimi merak ediyorum. oyunlar başladığında birkaç saniyelik tutorial’ler oluyor. mesela angry birds’te olduğu gibi, bir parmak simgesi çıkıp oyuncunun nereye tıklaması ne yapması gerektiğini gösteriyor. böyle bir sistemi nasıl oluşturabiliriz. örnek bir çalışma olsa süper olur.

      • yasirkula dedi ki:

        UI sistemini kullanan bir animasyon oluşturabilirsiniz. Animasyon penceresine erişmek için Window-Animation yolunu izleyin.

  166. Mehmet Samsunlu dedi ki:

    Merhaba hocam, Unity 3D karakterime yürüme animasyonu yapmak istiyorum. Unity 3d de zor oluyor. Animasyon programlarında yürüme animasyonu yapıp Unity 3d ye ekleyebilir miyim. Olursa tavsiye edeceğiniz animasyon programı var mı? Çalışmalarınızda başarılar. Saygılar.

    • yasirkula dedi ki:

      3ds Max, Maya ve Blender piyasadaki en iyi modelleme programları. Bunların animasyon kısmı da iyidir diye tahmin ediyorum. Aralarında tek ücretsiz olanı Blender. Eğer dilerseniz Asset Store veya Mixamo’dan ücretsiz animasyonlar indirebilirsiniz de, yalnız karakterinizin Import Settings’indeki Rig’i Humanoid olmalı.

  167. SalavatGetir dedi ki:

    Hocam merhaba, ben bir objenin herhangi bir yerinden ileri doğru bir top göndermek istiyorum. Yani mesela bir tank olsun, tankın tam namlusundan top atmasını nasıl sağlarım. Teşekkürler.

    • yasirkula dedi ki:

      Tanka boş bir GameObject’i child olarak verip bu objeyi elle namlunun ucuna yerleştirmeniz lazım. Ardından ateş etme scriptinizde bu objeyi public bir değişkende tutup, Instantiate fonksiyonunun içerisinde bu objenin pozisyonunu kullanmanız lazım.

  168. ahmet dedi ki:

    Hocam merhabalar bir sorum olacaktı.Unityde oyun apk sını alıp telefona atıyorum oyun başlarken ve bir süre geçtikten sonra telefon tuş kilidi kapanıyor.Oyun içindeyken bunu engellemenin bir yolu varmı.Birde oyundaki grafik kalitesi için qualitydeki anti aliasing dışında ek bir ayar varmı grafikler daha sağlam görünsün diye.Teşekkürler.

    • yasirkula dedi ki:

      Bir objenin Start fonksiyonunda Screen.sleepTimeout = SleepTimeout.NeverSleep; yapabilirsiniz. Grafikler için ise başka shader’lar kullanmayı deneyebilir ya da LUT (lookup texture) denilen yöntemi araştırabilirsiniz.

  169. Mehmet Samsunlu dedi ki:

    Merhaba,
    Değerli yardımınıza ihtiyacım var. Unity 3D Oyunumda binadan atlayan adamı kurtarmak için aşağıda brander geriyorlar. Fakat adam atlayınca branderin içinden geçiyor, ben brandere değince içinden geçmesini istemiyorum. Ne gibi bir ayar yapmam gerekir. Saygılar.

    • yasirkula dedi ki:

      Brandanın collider’ını Y ekseninde oldukça büyütün; hızlı cisimler ince collider’ların içinden geçebiliyor. İlaveten, Rigidbody’deki Collision Detection modunu değiştirmeyi de deneyebilirsiniz.

  170. Gökay dedi ki:

    Çok teşekkür ederim Unity’nin kütüphane sayfasında kaybolurken sizin Componentler, Matematiksel İfadeler v.b içerikleri barındıran dosyasınızı gördüm. Çok faydalı bilgiler içeriyor.

  171. Gökay dedi ki:

    Yaptığım oyunda tüm katmanları ayarladım sırasıyla ancak bazen oyun çalışırken 3. katmandaki nesne 2. katmana geriliyor ve kötü bir görüntü oluşuyor ne yapabilirim ?

    • yasirkula dedi ki:

      Katmandan kastınız 2D bir projedeki sorting layer’lar mı?

      • Gökay dedi ki:

        Sorunu hallettim Sorting Layer ile Layerı karıştırmışım başlayalı neredeyse 1.5 ay oldu yine de çok teşekkürler. Bir sorum daha olacaktı. Yaptığım oyun bir puzzle oyunu.Benim oyunumda bir nesne boruların içerisinden geçiyor ama sorun şu borular kullanıcının isteğine göre yerleştiriliyor ve bu nesne noruların içerisinden geçerken yukarı doğru da hareket etmesi gerekirken yerçekiminden dolayı aşağıda kalıyor. Ne çözümü önerebilirsiniz ?

      • yasirkula dedi ki:

        Boruya trigger’ı seçili collider verip OnTriggerStay’de objeye AddForce yapabilirsiniz.

  172. Gökay dedi ki:

    Hocam size ne kadar teşekkür etsem azdır. Sayenizde çok büyük bir sorunun önü açıkladı 1 cümlenizle.

  173. Burhan dedi ki:

    Iyi gunler hocam. Hocam unity de yaptigimiz oyunlarin objelerin animasyonlarini blender ile de yapa biliyormuyuz ? Ve yapa biliyorsak bu animasyon kismini hangi formatda ve nasil unity-e aktara bilirim ?

    • yasirkula dedi ki:

      Modelleri (ve animasyonları) FBX formatında export edin. Model ile beraber animasyonları da export edebiliyorsunuz ancak bunun için Blender içerisinden ekstra ayar yapmanız gerekiyor mu bilmiyorum.

  174. Burhan dedi ki:

    Cok tesekkur ederim hocam
    .

  175. ali seren dedi ki:

    merhaba, sistem saatine göre arkaplan renginin ya da texture’nın değiştirilebilmesi mümkün mü? örnek bir kod ya da tutorial var mı bildiğin? örneğin oyunu akşam açınca karanlık arkaplan rengi olsun sabah açınca aydınlık bir renk gelsin beyaz gibi…

  176. ihsan dedi ki:

    Abi ben cevremdekilerle kurduğum ekiple bir oyun yapi cam fakat sunu bilmiyorum.
    Farklı bilgisayarlardan aynı projeyi nasıl devam ettirebilirim

  177. Tayfun dedi ki:

    Merhaba…
    Unity, wav uzantılı ses dosyalarını tanımıyor da problemi bi türlü çözemedim.
    Şöyle bir hata ile karşılaşıyorum ;
    ..
    Errors during import of AudioClip Assets/Song/Save.wav:
    FSBTool ERROR: Failed decoding audio clip.

    Ne yapmam gerekiyor?

    • yasirkula dedi ki:

      İnternette bu hatayla ilgili hiçbir şey bulamadım ben de. Dilerseniz ses dosyasını başka bir formata (mesela OGG veya MP3) çevirip öyle deneyin veya ses dosyasını Audacity gibi bir programda açıp sonra Farklı Kaydet ile tekrar kaydedip öyle deneyin.

  178. ali seren dedi ki:

    Merhaba,
    Şöyle bir şey yapmak istiyorum yardımcı olabilirsen sevinirim, kullanıcının karşısına farklı zamanlarda butonlar çıkararak kullanıcının butonlara tıklamasını ve bu iki aksiyon arasındaki zamanı log olarak kaydetmeyi nasıl yapabilirim? en azından log tutabilmeyi nasıl yapacağım önerebileceğiniz bir tutorial tarzı eğitim videosu var mı? teşekkürler…

    • yasirkula dedi ki:

      Ben zamanı şuna benzer şekilde hesaplardım:

      public static float butonSonTiklama = -1f;
      
      public static void ButonaTikladim()
      {
      	if( butonSonTiklama > 0f )
      		Debug.Log( "İki tıklama arasında " + ( Time.realtimeSinceStartup - butonSonTiklama ) + " saniye geçti." );
      		
      	butonSonTiklama = Time.realtimeSinceStartup;
      }
      

      Log tutmaktan kastınız nasıl birşey?

      • ali seren dedi ki:

        yanıt için teşekkür ederim, log tutmaktan kastım şu; mesela oyuncunun karşısına bir buton çıkartıp ona tıklamasını isteyeceğim ve butonun görünmesi ile oyuncunun butona tıklaması arasında geçen süreyi kaydetmek istiyorum, oyun bölümü bitince sonuç ekranında tepki süresi olarak bu değeri göstermek ve bir dosyaya yazdırmak istiyorum.

      • yasirkula dedi ki:

        Bence butona bir script verip OnEnable fonksiyonunda Time.realtimeSinceStartup’ı (oyun başladığından itibaren geçen saniye) bir değişkene atın. Butonun On Click() event’inde de başka bir fonksiyon çağırıp burada o anki Time.realtimeSinceStartup’tan OnEnable’da bir değişkene attığınız değeri çıkararak oyuncunun tepki süresini ölçün. Bu süreyi kaydetmenin en kolay yolu PlayerPrefs.SetFloat kullanmak. Dosyaya yazma işini de internetten araştırmanızı öneririm çünkü tonla farklı yol var.

      • ali seren dedi ki:

        Bir de level yüklendikten sonra oyuncunun o level’da ne kadar süre meşgul olduğunu yani o bölümü kaç sn boyunca oynadığını ve kaç kez o bölümü tekrar oynadığı bilgilerini göstermek ve kaydetmek istiyorum.

      • yasirkula dedi ki:

        Bölümün kaç saniye sürdüğünü hesaplamak için bölüm bittiğindeki ve başladığındaki Time.realtimeSinceStartup farkını hesaplayabilirsiniz. Kaç kere oynandığını PlayerPrefs.SetInt ve PlayerPrefs.GetInt fonksiyonları ile cihazda depolayabilirsiniz.

  179. Mucahit dedi ki:

    Selamun aleykum abi mobil online oyunlar hakkinda bilgin var mi

    • yasirkula dedi ki:

      Aleykümselam. Unity’nin uNet networking sistemi mobilde de çalışıyor. Onun dışında Photon’un da mobil desteği olduğunu düşünüyorum. Bu sistemlerden uNet hakkında bir miktar deneyimim oldu. Basit olması açısından güzel bir sistem. Kendimi daha da ilerletince hakkında belki bir ders yazarım.

  180. Mucahit dedi ki:

    inşallah abi güzel olur öyle bi ders abi bu arada bi sıkıntım var oyunum bitmişti benim admob eklemeye çalısıyorum kaç gundur ama GoogleMobileAds-Editor-AdMobDependencies adında bi script var surekli 5 tane hata oldugu yazıyo naptıysam çözemedim bi fikrin var mı

  181. Mucahit dedi ki:

    Tamamdır abi

  182. Mucahit dedi ki:

    selamun aleykum abi daha önce sormustum unity online oyun yapımı hakkında bilgin var mı diye onun hakkında suan ders vermediğini söyledin araştırdımda düzgün bi kaynak bulamadım senin bildiğin güzel bi kaynak var mı türkçe olursa daha iyi olur tabi

  183. Kadir Kobak dedi ki:

    Benimde kanalımda unity dersleri var listeye ekler misiniz?

  184. Mucahit dedi ki:

    selamun aleykum abi online oyun hakkında bi sorum olucaktı belki bilgin vardır veya yapabiliceğin bi yorum izlediğim videolarda ve okuduğum bazı kaynaklarda multiplayer oyun yapımı oluyo yani bir oyuncu lobi kuruyor baska oyuncunun o lobiye girmesini bekliyo sorum su lobi kurmadan play tusuna basan oyuncuları otomatik olarak eslestirme yapmak mumkun mu mumkunse ne kullanmam lazım photon derslerine baltım ben

  185. ali seren dedi ki:

    Merhaba, google play üzerinden uygulama yüklemek istediğimizde şu şu izinleri istiyorum diyor ya uygulamalar, işte o izinler nasıl ayarlanıyor, mesela telefonun oyun sırasında ekranını güç nedeniyle kapatmaması nasıl sağlanıyor bununla ilgili bir kaynak paylaşabilir misiniz?

    • yasirkula dedi ki:

      O izinler AndroidManifest.xml dosyası tarafından belirleniyor. Plugin import ederseniz genelde bu pluginler kendi AndroidManifest’leri ile gelir. Unity bir de kendi AndroidManifest’ini pluginlerinkilerle birleştirerek en son tek bir AndroidManifest çıktı alıp bunu APK dosyasının içine atar.

      Unity’de kullandığınız kodlara göre Unity kendisi AndroidManifest’e bazı izinler ekleyebiliyor. Örneğin Handheld.Vibrate kodunu kullanırsanız telefonu titreştirmekle alakalı bir permission otomatik olarak eklenir. Detaylar için bkz. https://docs.unity3d.com/Manual/android-BuildProcess.html

    • yasirkula dedi ki:

      O izinler AndroidManifest.xml dosyası tarafından belirleniyor. Plugin import ederseniz genelde bu pluginler kendi AndroidManifest’leri ile gelir. Unity bir de kendi AndroidManifest’ini pluginlerinkilerle birleştirerek en son tek bir AndroidManifest çıktı alıp bunu APK dosyasının içine atar.

      Unity’de kullandığınız kodlara göre Unity kendisi AndroidManifest’e bazı izinler ekleyebiliyor. Örneğin Handheld.Vibrate kodunu kullanırsanız telefonu titreştirmekle alakalı bir permission otomatik olarak ekleniyor. Detaylar için bkz. https://docs.unity3d.com/Manual/android-BuildProcess.html

  186. Tayfun dedi ki:

    Merhaba, animasyonlar ile ilgili bir sıkıntı yaşıyorum da bi türlü sorunu çözemedim.
    Animasyon tipi humanoid,sorun ise;
    Karakter düz durduğu zaman ya da yürürken bir sıkıntı yok ancak yere düştüğü zaman bir sorun ile karşılaşıyorum.Bir kaç gündür araştırıyorum,uğraşıyorum ama bi türlü çözemedim.Bir de import messages da hatalar alıyorum.Sanırım bu resim sorunu açıklar.
    http://i.hizliresim.com/r6qWDM.jpg
    Sizce ne yapmam gerek?

    • yasirkula dedi ki:

      Animasyonun Root Transform Position (Y)’sinin Based Upon değerini Feet yapmayı deneyebilirsiniz. Olmazsa Bake Into Pose değerini de açmayı/kapatmayı deneyin.

      • Tayfun dedi ki:

        Denedim ve sorun hala devam ediyor.
        Şöyle bir çözüm yaptım; Avatar mask da Spine işaretlediğim zaman düzeliyor ancak spine biraz hava da kalıyor. İskelet de tüm bacakları hareket ettiren “Hips bone” var ancak humanoid ayarların da avatara “Hips bone” tanıtamıyorum, sildiğim zaman ise modelin yapısı bozuluyor.

      • yasirkula dedi ki:

        Mixamo’dan veya Asset Store’dan indirdiğiniz başka bir modelle denediğinizde nasıl oluyor?

      • Tayfun dedi ki:

        Hocam, extra bir bone daha eklemeliyim, başka türlü olmayacak gibi duruyor.Eğer görmek isterseniz, upload edip size gösterebilirim.

      • yasirkula dedi ki:

        O halde sorunu çözebilirsiniz umarım diyeyim.

  187. Tayfun dedi ki:

    Sorun animasyon ve ya model de değil, sanırım rigleme de ve ben dosyayı upload ettim bakabilir misiniz?
    http://dosya.co/xywb23h56zhf/Enemy.rar.html

  188. Mucahit dedi ki:

    selamun aleykum abi online oyun yapımı matchmaking gibi ders hazırlamayı dusunuyo musun

    • yasirkula dedi ki:

      Online konusunda kendimi geliştirdikten sonra ders yazmayı planlıyorum tabii ki.

      • Mucahit dedi ki:

        Cok faydali bir ders olur abi sabirsizlikla bekliyorum emegin cok bizde bu online derste burdaki herkesi cok daha ileri seviyelere tasiyabilir tum emegin icin sagol

  189. Furkan dedi ki:

    Yaptığım 2D oyunda build ettikten sonra apkda ve unity üzerinde bütün nesneler ve animasyonlar çalışmamaya başladı oyun başladığında hata vermiyor fakat hiçbirşey hareket etmiyor. Problem ne olabilir?

    • yasirkula dedi ki:

      Time.timeScale’i 0 yapmadığınızdan emin olun. Karakteri hareket ettiren scriptinizin Update fonksiyonunda Debug.Log(“test”); yazdırıp oyun esnasında konsola “test” yazdırılıyor mu diye kontrol edin. Yazdırılmıyorsa projeniz bir şekilde bozulmuş olabilir.

  190. cemre dedi ki:

    artırılmış gerçeklik projesi yaparken örneğin bir arabayı gerçek hayattaki duvara çarptığında durması için onu nasıl algılatabilirim acaba

    • yasirkula dedi ki:

      Mevcut teknoloji ile duvarı algılamak pek mümkün durmuyor. Artırılmış gerçeklik genelde bir marker’ı telefon kamerasına okutarak çalışıyor ve bu durumda sadece marker’ın olduğu düzlemden haberdar olabiliyorsunuz. Duvarları algılamak gibi ileri düzey artırılmış gerçeklik özelliklerinin ise Google Tango gibi projelerin gelişmesiyle ileride mümkün olmasını bekliyorum.

  191. mehmet dedi ki:

    selamun aleyküm yasir hocam sizden bir rıcam var yardımcı olurmusunuz bana bir kod lazım kod konusunda acemiyim,
    istediğim kod bir neyseyi oldugu yerde sola sağa yavaşca hareket etmesi kendisi hareket edicek,
    şimdiden teşekkürler.

    • yasirkula dedi ki:

      Şuna benzer bir şey işinizi görebilir:

      using UnityEngine;
      
      public class SagaSolaHareketEt : MonoBehaviour
      {
      	private Vector3 localPos;
      	private float t;
      	
      	public float hareketMiktari = 2f;
      	public float hiz = 1f;
      
      	void Start()
      	{
      		localPos = transform.localPosition;
      		t = hareketMiktari;
      	}
      	
      	void Update()
      	{
      		t += Time.deltaTime * hiz;
      		float deltaX = Mathf.PingPong(t, hareketMiktari * 2) - hareketMiktari;
      		transform.localPosition = localPos + Vector3.right * deltaX;
      	}
      }
      
      • mehmet dedi ki:

        çok teşekkür ederim hocam dualarım sizinle çok işime yaradı

      • mehmet dedi ki:

        Tekrar rahatsız ediyorum hocam kusura bakma. şöyle bir kod a ihtiyacım var mesela bir ayna olucak o aynaya dokunucam karşı bölgeye atıcak beni buna dair bildiğiniz ders varmı yada kod

      • yasirkula dedi ki:

        Ayna diyince aynada kendimizi göreceğiz diye düşünüyorum. Karşı taraftan kastınız nedir acaba?

  192. Mucahit dedi ki:

    selamun aleykum abi oyunumda karakterimi a ve d duslarına basıldıgında 30 derecelik dondurmek istiyorum aslında yazdıgım kod bi nebze oldu ama sorun su ben a dusuna basıldıgında karakterin transform.rotation.y>=-30 denetlesin -30dan kucukse rotasyonu dondurmesin istiyorum aynı sey d içinde geçerli ama ne yaptıysam olmadı kod bu nerde hata yapıyorum acaba

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

    public class hareket : MonoBehaviour
    {
    public float temp;
    public bool Rotasyon;
    public int Donus;
    public float speed = 3.0F;
    void Start()
    {
    }

    void Update()
    {

    CharacterController controller = GetComponent();
    Vector3 forward = transform.TransformDirection(Vector3.forward);
    float curSpeed = speed;
    controller.SimpleMove(forward * curSpeed);
    if (Input.GetKeyDown(KeyCode.D) && !Rotasyon)
    {
    Rotasyon = true;
    Donus += 1;
    temp = 0;
    }
    if (Input.GetKeyDown(KeyCode.A) && !Rotasyon)
    {
    Rotasyon = true;
    Donus -= 1;
    temp = 0;
    }
    transform.Rotate(Vector3.up * 30 * Time.fixedDeltaTime * Donus, Space.World);
    temp += 30 * Time.fixedDeltaTime;
    if (temp >= 30)
    {
    temp = 0;
    Donus = 0;
    Rotasyon = false;
    }
    }

    • yasirkula dedi ki:

      Şöyle bir şey deneyebilirsiniz:

      KOD TEMİZLENDİ.

      • Mücahit dedi ki:

        Selamun Aleyküm Abi, verdigin kodda şöyle bir hata cikti.Örneğin;A tuşuna bastiğimda birden -30 yönünde dönüyor ve d tuşuna bastiğimizda dönmüyor bu kodu hem akici hemde iki yönde dönemsini nasil sağlayabilirim.

      • yasirkula dedi ki:

        KOD TEMİZLENDİ.

      • Mucahit dedi ki:

        bu kodda da rotation y baslangıcta sıfır olmasına ragmen oyun baslar baslamaz 30 oluyo ve bi daha hiç bir şekilde donmuyo

      • Mucahit dedi ki:

        while (angles.y < 180f) angles.y += 360f; bunu sildiğimde donusler oldu ama
        angles.y = Mathf.Clamp(angles.y, -30f, 30f); burda sadece -30 ve 30 oldugu için sanırım karakter hep ya saga ya da sola gidiyor Mathf.Clamp yerine ne kullanabilirim -30f,0,30f aralıgında gidip gelmesi için

      • yasirkula dedi ki:

        Evet orada -180f yerine 180f yazmışım. Kodun çalışan denenmiş hali şu:

        using UnityEngine;
        
        public class hareket : MonoBehaviour
        {
        	public float speed = 3.0f;
        	public int yon = 0;
        
        	void Update()
        	{
        		CharacterController controller = GetComponent<CharacterController>();
        		Vector3 forward = transform.TransformDirection( Vector3.forward );
        		float curSpeed = speed;
        		controller.SimpleMove( forward * curSpeed );
        
        		Vector3 angles = transform.eulerAngles;
        		if( Input.GetKeyDown( KeyCode.D ) )
        		{
        			if( yon < 1 )
        				yon++;
        		}
        		else if( Input.GetKeyDown( KeyCode.A ) )
        		{
        			if( yon > -1 )
        				yon--;
        		}
        
        		angles.y = Mathf.MoveTowardsAngle( angles.y, 30 * yon, 30 * Time.fixedDeltaTime );
        		transform.eulerAngles = angles;
        	}
        }
        
      • Mucahit dedi ki:

        eyvallah abi cok sağol oldu

  193. Muhammet dedi ki:

    Merhabalar Yasir Abi,Unity den Online bir Chat uygulamasi yapmak istiyorum.Server ve Chat işleri nasil oluyor.Nerden araştirabilirim.Öğrenebilecegim kaynak var mi yabanci kaynaklarda olur.Teşekkürler

    • yasirkula dedi ki:

      Chat konusunda hiç tecrübem yok ama bu konuda hep socket.io diye bir şey duydum, “unity socket io” şeklinde arama yapmanız faydalı olabilir.

  194. Mucahit dedi ki:

    selamun aleykum abi ben oyunumda ilk sahnede karakterin materyallerini değiştirme seceneği yapmak istiyorum kıyafeti değisebilicek toplanan altınlarda materyal değişimini yaptım ama oyunun 2.sahnesine geçtiğinde ilk sahnedeki karakterin materyalini 2.sahnedeki katakterle nasıl eşitleyebilirim materyal için yazdıgım kod bu

    using UnityEngine;
    using System.Collections;
    using UnityEngine.SceneManagement;
    using UnityEngine.UI;
    public class menu : MonoBehaviour {

    public Material[] material;
    public GameObject tavsan,sagtus,soltus;
    public int degisme = 0;
    Renderer rend;
    void Start () {
    rend =tavsan.GetComponent();
    rend.enabled = true;
    rend.sharedMaterial = material[0];
    }
    public void Play()
    {
    SceneManager.LoadScene (1);
    }
    public void Exit()
    {
    Application.Quit ();
    }
    public void SagButon()
    {
    degisme = degisme + 1;
    if (degisme >= 2)
    {
    degisme = 2;
    rend.sharedMaterial = material[2];
    sagtus.gameObject.SetActive(false);
    }
    if (degisme == 1)
    {
    rend.sharedMaterial = material[1];
    soltus.gameObject.SetActive(true);
    }
    }
    public void SolButton()
    {
    degisme = degisme – 1;
    if (degisme <= 0)
    {
    degisme = 0;
    rend.sharedMaterial = material[0];
    soltus.gameObject.SetActive(false);
    }
    if (degisme == 1)
    {
    rend.sharedMaterial = material[1];
    soltus.gameObject.SetActive(true);
    sagtus.gameObject.SetActive(true);
    }
    }
    }

    • yasirkula dedi ki:

      public static Material karakterMateryal;

      void OnDestroy()
      {
      karakterMateryal = rend.sharedMaterial;
      }

      Üstteki kodu menu scriptine ekleyip ardından oyun esnasında karakterin materyaline oyun.karakterMateryal şeklinde erişebilirsiniz.

      • Mucahit1 dedi ki:

        Sagolasin abi

      • Mucahit1 dedi ki:

        Selamun aleykum abi unity online matchmaking oyun hakkinda onerebilicegin kaynak var mi

      • yasirkula dedi ki:

        Online konusunda şu video dersleri faydalı bulmuştum ama matchmaking konusunu anlatmıyorlar: https://www.youtube.com/playlist?list=PLPV2KyIb3jR5PhGqsO7G4PsbEC_Al-kPZ

        Bu konuda Türkçe bir ders var mı bilmiyorum, sanırım “uNet matchmaking” şeklinde arama yapmanız gerekecek.

      • Mucahit1 dedi ki:

        Bu derslere denk gelmistim ama anladigim kadariyla kendisi bir server kurmaktansa unity uzerinden multiplayer bir oyun yapiyor sanki benim ogrenmek istedigim sey server nasil kurulur guvenligi nasil saglanir gibi seyler yani server hakkinda detayli bilgi ariyorum

        Bir sorum daha olucak bu konuyla alakasiz ama senin yardiminla materyalleri 2.sahnede karaktere bagladim ben save load islerini PlayerPrefs ile yapiyordum bir materyal dizini (materyal[ ] ) nasil kaydedebiliriz yani kullanicinin sectigi materyali kaydedip oyuna tekrar girdiginde o materyalle baslamasini istiyorum PlayerPrefs ile baktigim kadariyla materyal kaydetmeyi bulamadim acaba farkli bi methot mu kullaniliyor bunun icin
        İlgin ve alakan icin sagol abi

  195. yusuf dedi ki:

    Beynin dert görmesin, emeğine sağlık. İzninizle benimde iki sorum olacak. Unity3d ye yeni basladim ve esim de cocuk gelisimi uzmani. Esimle beraber 5 yas alti oyunlar yapmayi planliyoruz. Ancak bununla ilgili yardimci olabilecek yerli veya yabanci hiç video bulamadim. İlk yapmak istediğimiz boşluk doldurma veya sticker denen yapboz tarzi oyunlar. Puzzle aratinca yer degistirmeli veya adventure tarzi bi iki video cikiyor o kadar. Bu konuda tavsiyeni alabilirmiyiz? 2.olarakta unity de kod yazma konusunda çalışmalara başlamadan önce “component” leri tam olarak öğrenmek istiyorum bu konuda nerden çalışmamı önerirsin. Şimdiden çok teşekkürler.

    • yasirkula dedi ki:

      Eğer 2 boyutlu bir oyun düşünüyorsanız Game Maker oyun motorunu da inceleyebilirsiniz, kod yazmadan da bir seviyeye kadar oyun yapabiliyorsunuz. Unity için ise benim önerim İngilizce video dersler izlemeniz yönünde. Unity’nin kendi sitesindeki Scripting video dersleri ve Modules altındaki örnek oyunlar bence oldukça faydalı. Türkçe dersler konusunda piyasayı çok takip etmiyorum, bu konuda kendi içgüdünüze güvenmeniz lazım sanırım.

  196. Darkwolf dedi ki:

    yasirkula build shaders adli sey ne ise yarir we nasil kurulur bende kurilmadi.

  197. osman dedi ki:

    selamun aleykum hocam ben dunya yapıcam yaptıgım dunyayı dokunma ile istediğim yöne çeviricem bunu nasıl yapabilirim

    • yasirkula dedi ki:

      “Unity rotate object by touch” şeklinde arama yapınca kısa kısa birkaç video ders geliyor, onlar işinizi görür diye düşünüyorum.

  198. darkwolf dedi ki:

    Hojam bulidshaders unity indiryosunya orada build.shaders diyip birsey cikyo we ben unityny of line surukini indirdim build shaders naaip kurulur
    Ben oyunu build edmek istedigimde bilgisayar donyor we buil penjeresinde build assets for scein 0 diyor nasil buil edilir

    • darkwolf dedi ki:

      Ben eski lisansimi unityden nasil silerim
      We unity persional licensede yilik 100.000 dolar kazanmalisin neden ben 100.000 dolar altinda para odemeliyimi

  199. darkwolf dedi ki:

    Ben eski lisansimi unityden nasil silerim
    We unity persional licensede yilik 100.000 dolar kazanmalisin neden ben 100.000 dolar altinda para odemeliyimi

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s