Unity Sıkça Sorulan Sorular (S.S.S)

Yayınlandı: 05 Eylül 2014 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

SON GÜNCELLEME: 23.05.2020

  • Unity’i ücretsiz olarak nereden indirebilirim?

Tabi ki kendi sitesinden: http://unity3d.com/unity/download

  • Unity ücretsiz mi?

Yıllık geliriniz 100.000$’dan az ise ücretsiz. Aksi taktirde, eğer yıllık geliriniz 200.000$’dan az ise Plus sürümü, daha çok ise Pro sürümü kullanmak zorundasınız. Bu sürümlerin ücretleri ve sunduğu ilave özellikleri şuradan görebilirsiniz: https://store.unity.com/compare-plans

Free sürüm ile sadece PC’ye değil, aynı zamanda Android’e, iOS’a, Windows Phone 8.1’e ve WebGL’e de oyunlarınızı ücretsiz bir şekilde çıkarabilirsiniz. iOS’a build almak için Mac bilgisayar, Windows Phone 8.1’e build almak için ise minimum Windows 8 gereklidir haberiniz ola.

  • Free (Personal) sürümde yaptığım oyunları yayınlayabilir ve onlardan para kazanabilir miyim?

Evet! Free (Personal) sürümde oluşturduğunuz oyunlardan dilediğinizce para kazanabilirsiniz. Bu paradan Unity Technologies’e tek kuruş komisyon ödemiyorsunuz. Ancak yukarıda da bahsettiğim gibi, yıllık geliriniz 100.000$’ın üzerindeyse Free sürümü kullanamazsınız.

  • Free (Personal), Plus ve Pro sürümleri arasındaki farklar neler?

Unity’nin kendi sitesinden bu sürümlerin karşılaştırılmasını inceleyebilirsiniz: https://store.unity.com/compare-plans

Kullanıcının gözlemleyeceği en büyük fark, oyunun başında çıkan Unity logosunu Plus ve Pro sürümlerde değiştirebiliyor olmanız. Sırf bunun için Unity’yi crack’lemeye değeceğini düşünmüyorum.

  • Crack’li Unity ile yaptığım oyunu yayınlasam sorun olur mu?

Sorun çıkması riski var, evet. Sonuçta illegal bir şekilde Unity’nin tüm özelliklerinden faydalanıyorsunuz. Yakalanır mısınız orası meçhul. Bence Free sürümü kullanın.

  • Unity’e yeni başladım ve daha hiçbir bilgim yok. Sizce nasıl bir yol izlemeliyim?

Eğer oyun sektöründe ciddi işlere imza atmak istiyorsanız önce İngilizce öğrenin. Piyasada istemediğiniz kadar İngilizce Unity dersi var. Kendi derslerim arasından ise şöyle bir yol çizebilirim:

1) https://yasirkula.com/2011/08/28/unity%E2%80%99nin-orijinal-baslangic-tutorialleri-%E2%80%93-simdi-tamamen-turkce/

2) https://yasirkula.com/2011/09/07/unitynin-orijinal-baslangic-tutorialleri-2-tamamen-turkce/

3) https://yasirkula.com/2011/08/09/caylaklar-icin-unityscripte-javascript-baslangic-kilavuzu-hicbir-programlama-gecmisi-gerekmez/

4) https://yasirkula.com/2014/05/17/klonluyoruz-unity-3dde-flappy-bird-yapimi/

5) https://yasirkula.com/2013/07/24/unityde-pong-oyunu-tasarlamak-ceviri-ders/

6) https://yasirkula.com/2013/07/27/unityde-tower-defense-kule-savunmasi-oyunu-tasarlamak-ceviri-ders/

7) https://yasirkula.com/2016/01/24/unity-navmesh-kullanarak-basit-bir-futbol-oyunu-yapmak/

8) https://yasirkula.com/2014/07/07/unity-c-tps-oyunu-yapimi-ceviri-projesi/

Size en büyük tavsiyem, Unity öğrenirken bir Word belgesine yeni gördüğünüz kodları, fonksiyonları, faydalı ipuçlarını vb. açıklamalar eşliğinde not alın ve bu belgeyi arada bir okuyun. Bu yöntem bende işe yaradı, umarım sizde de yarar.

  • Javascript (Unityscript) mi C# mı?

Bence C#. Bundan böyle hiçbir oyunumda da Javascript kullanmayacağım. Neden derseniz: genellikle plugin’ler C# dili ile yazılmış oluyor ve Javascript’ten C#’a erişmek Unity’de biraz sıkıntılı. Onun haricinde interface’ler, abstract class’lar Javascript’te mevcut değil. Javascript’in tek avantajı kod yazarken bazı konularda size kolaylık sağlaması ama bence bu kolaylığa değmez.

İlaveten, Unity’nin ileride Javascript desteğini keseceğini açıklaması da C# kullanmak için önemli bir etken: https://blogs.unity3d.com/2017/08/11/unityscripts-long-ride-off-into-the-sunset/

Javascript ile C# arasındaki temel farklara değindiğim yazıyı incelemek için tıklayın: https://yasirkula.com/2013/08/21/unityde-javascript-unityscript-ile-cin-birbirinden-farklari/

  • Hiç kod bilgim yok. Unity’den önce Javascript öğrensem işime yarar mı?

Büyük olasılıkla hayır. Normal Javascript bir web programlama dilidir ve syntax’ı, veri türleri Unity’deki Javascript’ten (Unityscript) oldukça farklıdır.

Javascript öğrenmenizi önermem ama eğer isterseniz C# öğrenebilirsiniz ve bunun size gerçekten faydası da olur. Tabi çok ileri düzey C# öğrenmenize gerek yok. Syntax aşinalığı, koşullar, döngüler vb. öğrenmeniz yeterli. Sonuçta Unity’de kod yazarken hemen hemen hep Unity’nin UnityEngine kütüphanesini kullanacaksınız. Asıl önemli olan bu kütüphanenin sahip olduğu fonksiyonları, değişkenleri vb. öğrenmek ki o da ders izleye izleye, takıldığınız noktaları araştıra araştıra olacak olan birşey.

  • Kod yazarken hangi programı kullanıyorsun?

Notepad++ kullanıyorum. Programın iyi yanı çok hızlı çalışması. Ancak çeşitli sebeplerden ötürü bu programı sadece ileri düzey kullanıcılara tavsiye ederim.

Unity’de Notepad++ kullanmak için: https://yasirkula.wordpress.com/2012/08/01/unity-3d-script-editoru-olarak-notepad-kullanmak/

Visual Studio kullanıyorum. Programın ilk açılışının yavaşlığı hariç Intellisense ve auto format özelliklerinden fazlasıyla memnunum.

  • Oyunumu Google Play’e koyacağım ama yıllık $25 ödemem gerekiyor, doğru mu?

Hayır. $25 ücreti sadece üye olurken ödüyorsunuz. Ondan sonra bir ücret ödemiyorsunuz.

  • Android oyunumda hangi reklam platformunu kullanmalıyım?

AdMob kullanıyordum ve memnundum. Ancak bir seferinde oyunum Google Play’den kaldırıldı ve hemen akabinde AdMob reklamları da otomatik olarak kesildi. Bu yüzden artık oyunlarımda AdMob’u tek başına kullanmayacağım. Şu anda Unity Ads kullanıyorum.

Eğer AdMob kullanacaksanız, benim önerim IronSource veya MoPub gibi bir mediation servisi kullanmanız yönünde (AdMob’un kendi mediation servisini kullanırsanız, oyununuz Google Play’den kaldırılırsa reklamlarınız kesilir). AdMob harici bir mediation servisi kullandığınızda, oyununuz Google Play’den kaldırılsa bile, mediation ağınızdaki diğer reklam sağlayıcılardan reklam alarak para kazanmaya devam edersiniz. İlaveten, mediation servisi cross-promotion destekliyorsa ve oyununuzu başka bir formatta yeniden Google Play’e yüklerseniz, cross-promotion ile mevcut kullanıcılarınızın oyunun yeni sürümünden haberdar olmasını sağlayabilirsiniz.

  • Android oyunum açılır açılmaz kapanıyor (crash), ne yapabilirim?

Projenizde kullandığınız plugin’leri tek tek silip bir işe yarayıp yaramadığına bakabilirsiniz. Player Settings’ten Target SDK’yı değiştirebilir, Build Settings’ten Build System’ı Gradle yapabilirsiniz. Varsa Android SDK’daki güncellemeleri kurmayı da deneyebilirsiniz. Ayrıca uygulamayı başka cihazda veya emülatörde deneyebilir, logcat kullanarak bir hata alıp almadığınıza bakabilirsiniz. Logcat için: https://yasirkula.com/2015/10/13/unity-android-oyunlarinizi-debug-etmek/. Eğer AdMob kullanıyorsanız, Play Services Resolver-Android Resolver-Force Resolve yapmayı deneyebilirsiniz.

Uygulamanın açılır açılmaz kapanması olayı çok sıkıntı bir şey çünkü genelde hata mesajları hiç açıklayıcı olmuyor ve hatanın nerede olduğunu bulmak için deneme-yanılma yapmak gerekiyor. En kötüsü, projeyi başka bir Unity versiyonunda açmayı da deneyebilirsiniz. Ama önce projenizin bir yedeğini almanızı öneririm.

  • Oyunumu Google Play’e yüklemeye çalıştığımda 64 bit hatası alıyorum, nasıl çözerim?

Şu dersime göz atabilirsiniz: https://yasirkula.com/2014/04/17/unity-android-oyununuzu-google-playe-yuklemek/

yorum
  1. SEL_ dedi ki:

    İyi günler hocam nereden soracağımı bilemedim. Unity ile online oyun yapmaya çalışıyorum serverı unity oyun motoru ile yapıyorum yani c# ve TCP kullanıyorum. Çoğu işimi server tarafına almama rağmen veriler client tarafına gecikmeli gidiyor. UDP ile denedim bir değişiklik olmadı uzun zamanımı aldığı için buradan yazıyorum. Tavsiye veya fikirlerinizi almak istedim

  2. Barış dedi ki:

    Machine Learning ile ilgili bir ders yapmalısınız. Hem Unity’nin kaynağı var sanırım benim ingilizcem yok o yüzden anlayamıyorum 🙂 Ve Bu yapay zeka işlerinde kendimi geliştirmek için Unity dışında da ne kullanabilirim prog. dili ve program olarak (Unity ve Visual Studio gibi). Genel olarak yapay zeka olaylarına Unity’nin içinde mi başlamamı önerirsin başlangıç ve ileri düzey dersek?

    • yasirkula dedi ki:

      Machine Learning konusunda dediğiniz gibi Unity dersleri var ama Machine Learning hakkında genel bir bilgi sahibi olmadan o derslerden tam verim alamıyorum. Çok da zorlamadım çünkü Machine Learning şu anda ilgimi çeken bir konu değil. O yüzden şu anda Machine Learning’le alakalı bir planım yok.

      Ben full-time C# ile çalışıyorum, diğer diller konusunda çok araştırmam yok. Yapay zeka için genelde Python duydum ve “most popular languages for ai” şeklinde arama yapınca da karşıma gelen listelerin çoğunda Python’u gördüm. Unity ile oyun yapacaksan yapay zekaya Unity’nin içinde başlayabilirsin sanırım, yapay zekanın yaptığı işi direkt 3D uzayda gözlemleme şansın olur. Ama bu da C# veya C++ kullanmak zorunda olman anlamına geliyor.

  3. Barış dedi ki:

    Sizin Naughty Dog gibi veya Rockstar Games bir şirkette çalışma gibi bir hedefiniz var mı? Ve öyle büyük firmalar bildiğim kadarıyla Unity veya Unreal bile değil direk kendileri mi oyun motorlarını mı yazıyorlar? C++ ile yapılıyormuş oyun galiba ama oyun motoru acaba hangi dille kodlanıyor? Hep merak ettim böyle büyük oyunların yapılışını 🙂

    • yasirkula dedi ki:

      Benim böyle bir hedefim yok. Dediğiniz gibi çoğu oyun motoru C++ ile yazılıyor ama motoru kullananlar C++ harici diller kullanıyor olabilir (örneğin Unity’de motorun kullanıcıları olan bizler C# kullanıyoruz). Ben bir oyunun motorunu merak ettiğimde genelde “gta 5 game engine” veya “fifa game engine” şeklinde arama yapıyorum. Bazen oyunların yapım aşamalarından videolar da paylaşıyorlar, onları ise genelde “gta 5 behind the scenes” veya “making of gta 5” şeklinde aramalar yaparak buluyorum.

  4. Barış dedi ki:

    Bende hazır animasyon var asansör kapısı kapansın istiyorum içeri girince. animasyon var ama bunu kodla nasıl yapacağım bilemedim? OnTriggerEnter ile mesela temas olur olmaz o animasyon dosyası çalışsa?

    • yasirkula dedi ki:

      Asansör kapısı modelini seçtikten sonra Inspector’daki Rig sekmesinden “Animation Type”ı Legacy yapın. Ardından sahnedeki objenin Animation component’indeki “Play Automatically” seçeneğini kapatın. Artık ne zaman animasyon oynasın isterseniz, “animationComponenti.Play();” veya “animationComponenti.Play(“Animasyon klibi ismi”);” fonksiyonlarını kullanın.

  5. Ahmet dedi ki:

    2d oyunlar için asset store alternatifi güzel bir site buldum. İhtiyaç duyulabilecek tüm her şey bu sitede mevcut. Bizimde çorbada bir tuzumuz olsun 😀
    https://www.freepik.com/search?dates=any&format=search&page=3&query=game+button&sort=popular&type=vector

  6. Barış dedi ki:

    ontriggerenter ile sadece 1 defa temas kontrol ettirebiliyorum. Benim amacım şu; box collider var saklanma yerlerinde karekter oraya gelince otomatik ışık kapanacak ve temastan çıkınca ışık açılacak. Ben nasıl anlık kontrol yapabilirim? Ve bu işlem için sizce SetActive mi kullanmalıyım?

    • yasirkula dedi ki:

      Karakter collider’ın içinde olduğu sürece OnTriggerStay çağrılır ama benim önerim, karakter collider’a girince OnTriggerEnter, collider’dan çıkınca da OnTriggerExit’tan faydalanın.

  7. Ahmet dedi ki:

    Hocam 2d oyunlar için asset store harici ücretli ya da ücretsiz mağazalar önerebilir misiniz.

  8. Barış dedi ki:

    Huawei AppGallery’e oyunumu yüklemek istiyorum. (Çok yeni bir mağaza olduğu için) Ama reklam konusu nasıl olacak bilmiyorum mutlaka bir reklam şirketi vardır destekleyen fakat yinede Huawei’e build almak In App Purchases konusu ve reklamlarla ilgili kafamda çok soru var sizce ne yapmalıyım? App Store ve Google Play yeterli mi? Yani aslında yeterli ama Huawei’in iyi yanı daha çok yeni bir mağaza olması bu yüzden soruyorum. Unity Ads&AdMob desteklemiyor mesela bunlar hep sorun.

  9. Barış dedi ki:

    Abi şu multiplayer sistemini biraz araştırayım dedim photon pun 2 kullanılıyor sanırım. Bunun plus versiyonu da varmış ama o da 100 kişi en fazla (free olanı zaten 20 kişi) yani şimdi 100 kişi sınırını ben nasıl geçebilirim? Ve bu iş için gerçekten iyi bir kaynak var mı acaba? Veya Wifi üzerinden aynı ağa bağlanıp pvp tarzı bir şey nasıl yapabilirim? Bu daha kolaysa kısaca şu pvp için acaba kaynak bulsanız bile harika olur

    • yasirkula dedi ki:

      Multiplayer konusunda benim güncel bilgim neredeyse sıfır. Ancak multiplayer için sadece Photon yok; “unity multiplayer comparison” şeklinde arama yaparsanız istemediğiniz kadar multiplayer plugin’le karşılaşabilirsiniz. Bunların artılarının eksilerinin tartışıldığı onlarca kaynak da bulabilirsiniz.

  10. Ayktu dedi ki:

    Unity 2019.4.3f1 sürümü yüklü. yalnızca windows tarafını kurdum. Ancak assets kısmında package’larda standart packagelar yok. Nasıl yükleyeceğimi bulamadım. Yardımcı olabilir misin?

  11. Barış dedi ki:

    Merhaba, geçen ay https://assetstore.unity.com/packages/templates/systems/mobile-horror-hide-and-seek-kit-157274 asset i satın aldım enemy waypoint lere gidiyor fakat giderken sadece bu assetteki map çalışıyor. Yani başka mapde yapay zeka hareket etmiyor etse bile örneğin düz gidip sağa dönecekse bile onu algılamayıp duvara yürüyor(gideceği yolu bilmiyor duvarı geçmeye çalışıyor) waypoint e ulaşmak için. Yani sadece bu assetin mapine uygun. Satın aldığım kişiye mail attım henüz cevap gelmedi siz ne düşünüyorsunuz bu konuda? Sanırım yapımcı hazırlarken enemy nin gideceği yolları kendi ayarlamış ve bu yüzden başka map e uyarlayamıyoruz mesela kendi map ini tamamen kaldırınca sanki(yapımcının assetin mapi (sorunsuz olan)) hiçbir şey yokmuş gibi yani enemy önündeki objeler sanki orada duruyormuş gibi hareket ediyor scene de map olup olmamasına rağmen? Sanki gideceği rota tamamen ayarlanmış gibi yani. Yere de düşmüyor ve mesela haritada merdiven var normalde o haritayı tamamen kaldırıyorum ama hala merdiven iniyormuş gibi yapıyor? Yani alçalıyor git gide çünkü waypoint normalde o haritada alt katta. Siz hiç bu tarz bir şeyle uğraştınız mı? Sanki enemy waypointlere giderken tamamen belli rota izliyormuş gibi çok ilginç?

    • Barış dedi ki:

      Ve şu da var enemy beni görürse waypoint e gitmeyi bırakıp beni takip ediyor beni kaybederse de tekrar waypointlere odaklanıyor enemy i haritanın en uç köşesine dahi götürsem kendimi takip ettirerek yinede tekrar waypointlere kaldığı yerden devam ediyor beni kaybedince. Yani öyle direk animasyonda değil aslında. Yapımcının kendi haritasında mükemmel bir uyum var. Size asset paketini mail adresinize yollayayım mı abi? Şimdiden teşekkür ederim.

    • yasirkula dedi ki:

      Sizin de dediğiniz gibi, NavMesh sistemi kullanılıyor gibi duruyor. Haritanızdaki statik objeleri (zemin, duvar, masa vb.) Inspector’dan Static olarak işaretledikten sonra, Window-AI-Navigation’ın Bake sekmesindeki Bake butonuna basarak AI’ın hareket edebilececeği alanı oluşturabilirsiniz. Bu alan Scene panelinde mavi renkle gösterilir, oradan bakarak objelerinizin Static’liğini gerektiği gibi değiştirip tekrar tekrar Bake alabilirsiniz.

      Benim öncelikli önerim, asset ile gelen dokümantasyonu okumanız. Büyük olasılıkla orada NavMesh ve waypoint sisteminden bahsediliyordur. Sonrasında ise “unity navmesh ders” şeklinde arama yaparak NavMesh dersleri izlemenizi öneririm. Benim yazdığım şu dersteki “Navigation Sistemine Giriş” başlığı da ilginizi çekebilir: https://yasirkula.com/2016/01/24/unity-navmesh-kullanarak-basit-bir-futbol-oyunu-yapmak/

      • Barış dedi ki:

        Çok teşekkür ederim dersinizi az önce fark ettim iyice bu sistemi araştıracağım. Bu arada kusura bakmayın yorum yayınlanmadı sandım ondan biraz fazla yorum yayınladım.

  12. Raşit dedi ki:

    Merhabalar hocam,

    Unity ve C# öğrenmeye 3 ay kadar önce başladım günde 3-4 saat video izleyerek baya birşey öğrendim teorik olarak. Bir game studio da game developer olarak işe başlamak için kabaca bir kriter verebilir misiniz ne seviyede olmak gerekir? Basit bir oyun yapıp porfolioda göstermek yeterli midir?
    her çeşit öneriniz çok yardımcı olur.

    Cevabınız için teşekkür ederim.

    • yasirkula dedi ki:

      Türkiye’de firmalar genel olarak mobil hypercasual oyun üretiyorlar. Piyasadaki popüler 5-6 hypercasual oyunun temel mekaniklerini Unity’de sıfırdan yazıp bunları GitHub’a koyarak ilgi çekici bir portfolyo oluşturabilirsiniz (aklınızda kendi hypercasual fikirleriniz varsa onları da kullanabilirsiniz). Yazdığınız kodun takılmadan çalışması ve çok çorba olmaması önemli. Oyunların da görsel olarak biraz da olsa albenili olması güzel olur. Son olarak da, bu oyunları WebGL formatında build alıp oyunun linkini GitHub’ınızda paylaşırsanız, oyunun neye benzediğini görmek için illa kodu indirmek gerekmez (WebGL build’inizi itch.io’ya ücretsiz olarak yükleyebilirsiniz).

  13. Emirhan dedi ki:

    Unity 2019 ile 2018 arasındaki fark nedir?

  14. coder54 dedi ki:

    Hocam iyi günler, ben BTK Akademi ile birlikte Unity ve C# üzerine eğitim almaya başladım. internette Türkçe kaynağa pek denk gelememişken bu site karşıma çıktı. Bende göz gezdirdim Türkçe kaynaklar için sana teşekkür etmek istiyorum.

    Youtube’da Unity ile oyun yapanları izlediğimde belli başlı şeyler aynı iken araya farklı değişik kodlar giriyor bunları öğrenebilmek için ne tavsiye edersin gerçekten yardımcı olursan sevinirim.

  15. harun dedi ki:

    unity de çizginin uzunluğu nasıl sınırlandırılır?
    çizgiyi hızlı çizdiğimizde daha büyük oluyor ama yavaş çizdiğimde daha küçük oluyor.

    • yasirkula dedi ki:

      Çizgiden kastınız Line Renderer veya Trail Renderer kullanarak fare ile bir şeyler çizmek mi? Yaşadığınız sıkıntının screenshot’ını alabilir misiniz?

  16. hakan dedi ki:

    Unity oyun motoruyla kelime savaşı oyunu yapmak istiyoruz tv2 yayınlanan yarışmaya benzer.
    Soruları ve cevapları mssql tutmayı planlıyoduk ancak direk bağlantı yapılmıyor ara sunucu gerekiyor.Tavsiyeniz nedir.Sizce nasıl bir yol izlemeliyiz.

  17. hakan dedi ki:

    unity motorunu c# formla bağlantı yaparsak c# form için android desteği sağlamış olurmuyuz

  18. furkan becit dedi ki:

    Merhaba benim bir sorum olacak blender’da tasarladığım bir modeli collision ile birlikte unity de nasıl çalıştırırım yardımcı olabilir misiniz ?

    • yasirkula dedi ki:

      Modeli Unity sahnesine attıktan sonra Rigidbody component’i verin. Daha sonra collider’ları vermek gerekiyor. Burada önerilen yöntem, Box Collider, Capsule Collider ve Sphere Collider gibi temel collider’lar kullanmak. Gerekirse birden çok Box Collider vs. kullanarak karmaşık şekilleri de temel collider’larla kabaca çevrelemek mümkün. En kötü durumda ise Mesh Collider kullanabilirsiniz. Ancak objeyi fizik motoru hareket ettirecekse, component’teki “Is Convex” işaretli olmak zorunda.

  19. Enes ecioğlu dedi ki:

    Teşekkür ederim
    İphone kullanıyorum build alıp nasıl yüklicem kendime pc windows,

  20. Enes ecioğlu dedi ki:

    Hocam unity 5 kullanıyorum bi proje takılıyorum kendimce ekranımı 1920 1080 gibiydi galiba ayatladım ip7plus kullanıyorum 2d uygulamamda remote 5 ile deniyorum ama götüntü kalitesi berbat pc de çok iyi butonu falan kendim adobe ps işe yaptım sorun nedir acaba 2 d grafik ayar bilgileri başlığı açılmamış youtubede gördüğüm standart assets image efect falan gibi değil netlik istiyorum e mailden foto atabilirim

    • yasirkula dedi ki:

      Edit-Project Settings-Editor’deki Unity Remote ayarlarıyla oynamayı deneyebilirsiniz. Ancak performans testleri için oyunu build alıp cihazda test etmeniz lazım çünkü Unity Remote kullanırken bilgisayarın CPU ve GPU’su kullanılıyor.

  21. Caner Bıçakçı dedi ki:

    Hocam selamlar benim bir kodum var:

    if (sesverisi == 1)
    {
    GetComponent().clip=GameObject.FindWithTag(“data”).GetComponent().ses1;
    }
    if (sesverisi == 2)
    {
    GetComponent().clip=GameObject.FindWithTag(“data”).GetComponent().ses2;
    }
    if (sesverisi == 3)
    {
    GetComponent().clip = GameObject.FindWithTag(“data”).GetComponent().ses3;
    }
    .
    .
    .
    .

    Bu kod böyle devam ediyor.Her sayı için if komutu oluşturmaktansa Ben bunu şunun gibi birşeye dönüştürmek istiyorum:

    GetComponent().clip = GameObject.FindWithTag(“data”).GetComponent().”ses” + sesverisi;

    (SON KISMINDA BİR DEĞİŞTİRME VAR)

    bunu nasıl yazarız biliyormusunuz ??

    • yasirkula dedi ki:

      Array kullanabilirsiniz. Sesleri “public AudioClip[] sesler;” değişkeninde tutup Inspector’dan sırayla bu array’e ekledikten sonra kodunuzu GameObject.FindWithTag("data").GetComponent().sesler[sesverisi-1]; şeklinde güncelleyebilirsiniz (sesverisi-1 çünkü array’ler 1’den değil 0’dan başlar).

  22. tolgahan dedi ki:

    unity 2019.3.0a8 de networking kalkmış nasıl online oyun yapabilirim

  23. tolgaguducu dedi ki:

    Oyunu play storeda yayınladım ve App storeda yayınlamak istiyorum fakat yeterli bi bilgi bulamadım 100doları bilgisizce çöplemek istemiyorum. Sana sorum ios için oyunu yayınlarken nelere ihtiyacım olacağı. Kimisi mac bilgisayar falan diyor. Bununla ilgili bir rehber yapıcak mısın? Veya kısa yollu cevaplayabilirsen de çok makbule geçer. Windowstan ios için çıktı almamız yeterli değil mi veya ne gibi bir yol izlemeliyim şeklinde. Kolay gelsin

  24. Bayram Uğurlu dedi ki:

    Heyzap Mediation ve unity ads ile reklam nasıl ekleyebilirim? Sitede dersi bulunan admob reklam ekleme gibi yapılabilen birşey mi?

  25. Barış dedi ki:

    Oyunumu artık 64 bit zorunluluğu gelince IL2CPP yaptım apk yı yüklemeyi başlattım fakat hala daha bu uyarıyı veriyor?

    Uyarı
    Bu sürüm Google Play 64 bit gereksinimi ile uyumlu değil

    Aşağıdaki APK’ler veya Uygulama Paketleri, 64 bit cihazlarda kullanılabilir ancak yalnızca 32 bit yerel koda sahipler: 24.

    Tüm sürümlerin, 1 Ağustos 2019 tarihinden itibaren Google Play 64 bit gereksinimiyle uyumlu olması gerekir.

    Uygulamanıza 64 bit ve 32 bit yerel kod dahil edin. Her cihaz mimarisinin yalnızca ihtiyaç duyduğu yerel kodu almasını otomatik olarak sağlamak için Android App Bundle yayınlama biçimini kullanın. Bu sayede, uygulamanızın genel boyutunu büyütmekten kaçınmış olursunuz.

  26. Barış dedi ki:

    Oyunum bilgisayarda çok yüksek fps ile çalışıyor ve oyunum 2 boyutlu kastıramayacak az kod olan bir oyun olmasına rağmen telefonda sadece 30 fps alıyorum ben neden telefonda 60 fps oynayamıyorum(en azından 60 fps)?Not:Bütün oyunlarımda bu saçmalık var, sanki oyunları 30 fps e sabitlediler durduk yere

    • yasirkula dedi ki:

      Oyunun başında Application.targetFrameRate = 60; yapmayı deneyebilirsiniz. Ayrıca Edit-Project Settings-Quality’den “V Sync Count”ın değerini değiştirmeyi de deneyebilirsiniz.

  27. Barış dedi ki:

    Leaderboard sistemi veya Achievement sistemini nasıl yapabilirim?

  28. Kadir Can Geyik dedi ki:

    merhaba hocam yaptıgım oyunun sadece yatay olarak açılması için ne yapmalıyım …

  29. Barış dedi ki:

    Yeni proje aç diyerek bomboş bir sahnede android e build almayı deniyorum fakat gradle i internal yapınca ancak build alabiliyorum. Fakat benim asıl build etmem gereken oyunumun olduğu projede gradle zaten olmuyor da internal yapıncada ”Unable to convert classes to dex format” diye bir hata alıyorum?

    • yasirkula dedi ki:

      “Unable to convert classes to dex format” çok genel bir hata mesajıdır, asıl hata mesajını konsoldaki hatalardan birinde bulabilirsiniz. Ardından o mesajı internette aratmanız lazım.

      • Barış dedi ki:

        CommandInvokationFailure: Gradle build failed.
        C:/Program Files/Java/jdk1.8.0_131\bin\java.exe -classpath “C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.2.1.jar” org.gradle.launcher.GradleMain “-Dorg.gradle.jvmargs=-Xmx4096m” “assembleRelease”

        Build completed with a result of ‘Failed’
        UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

        UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors
        at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0021f] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:187
        at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x0007f] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:94

        Abi kusura bakma ingilizcem çok iyi değil de internetten sana zahmet 1-2 yere bakar mısın şu hatalar yüzünden o kadar emek verdiğim oyunumu yayınlayamayacağım 😦 Bu hataları normal gradle modda iken aldım.

      • yasirkula dedi ki:

        Bu hata mesajında da açıklayıcı bir şey yok, başka bir hata mesajı varsa onu kontrol edin. İnternetten kendiniz araştırma yapabilmek için de Chrome kullanabilirsiniz, sayfaları İngilizce’den Türkçe’ye çevirince (sayfada boş bir yere sağ tıklayarak) çoğu kısmı anlarsınız diye düşünüyorum.

  30. Emre dedi ki:

    Hocam merhaba, Ben unity 2018 kullanıyorum. Standard Assets kurdum ve Third person controller i kullanacaktım. Oyunu android versiyon yaptım ve kendi verdiği controlleri canvas a attım ama ekranda gözükmüyor.

    • Emre dedi ki:

      Bir de Hocam şu third person controller var ya w basınca koşuyor w+shift basıncada yürüyor. Normalde ters olması gerekiyor. Animasyonların yerini değiştirdim ama pek güzel olmadı. Kodlardan falan ayarlamak mümkün mü?

    • yasirkula dedi ki:

      Standard Assets veya Third Person Controller çok uzun süredir kullanmadım, nasıl çalışıyor açıkçası hatırlamıyorum. Animasyonların yerini değiştirmeden, sadece kodu düzenleyerek W+Shift olayını çözmeniz mümkün olmalı ama bunun haricinde yardımcı olamayacağım.

  31. Alper dedi ki:

    bir hayatta kalma oyunu yapıyorum elime alabileceğim 3 tane silah olucak ama silahlar değiştiğinde mermi sayılarının, animasyon değişmesi vs. gibi silah özelliklerinin nasıl değişeceğini bilmiyorum yardım etme imkanınız var mı 😦

    • yasirkula dedi ki:

      Tüm sistem nasıl olur bilemiyorum ama her bir silahın animasyonları için ayrı birer Animator Override Controller kullanabilirsiniz; böylece silah animasyonları silahtan silaha farklılık gösterir. Mermi sayısı gibi şeyleri silah script’inizde public değişkenlerle halletmeye çalışabilir veya her silah için ayrı bir script/ScriptableObject oluşturmayı deneyebilirsiniz.

  32. byportakal dedi ki:

    merhabalar. hocam ben unity’i ilk defa indirip kurdum. yeni proje açtığımda bana bu hatayı verdi:

    Failed to resolve packages: The file [C:users\Yunus
    YiGiT\AppData\Local\Unity\cache\npm\packages.unity.com\.tmp\tmp-25369Zi2vNC96sj1\package\package.json]
    cannot be found. No packages loaded.

    A re-import of the project may be required to fix the issue or a manual modification of C:/Users/Yunus
    YİGİT/OneDrive/Belgeler/New Unity Project {2)/Packages/manifest.json file.

    Click on Retry to relaunch Unity and reopen your project.

    Click on Continue to launch Unity. Some or all packages may not be imported which may cause compilation
    errors.

    unity’ kayıt defterinden de tamamen silerek tekrar yükledim. ama sonuç aynı.

  33. Harun dedi ki:

    yasir abi basit bir şekilde karakter sistemi nasıl tanımlayabilirim ? (içinde 2 karakter olucak spriteları olucak 1.si main karakter oyun açıldığında herkeste olan 2. ise parayla satın alınabilecek).Yardım Edersen Çok Makbule geçer(Bunlar İçin market panel yapacağım için işin içine Biraz sprite sokmam gerekiyor birde).

    • yasirkula dedi ki:

      Mobil platformlarda oyun içi satın almalar için genelde hazır IAP (in-app purchase) pluginleri kullanılıyor. Benim bu konuda hiç tecrübem olmadığından bu konuda yardımcı olamayacağım. Dilerseniz “unity oyun içi satın alma” veya “unity IAP” şeklinde aramalar yaparak faydalı linkler bulabilirsiniz.

      • Harun dedi ki:

        Reis Demek istediğim orjinal parayla değil oyundan kazandığımız altın ile satın alma

      • yasirkula dedi ki:

        Bunun için veriyi internetteki kendi sunucunuza kaydedebilir, “Google Play Services Saved Games” servisini kullanabilir (kendim kullanmadım), PlayerPrefs kullanabilir (aralarında en güvensiz metot) veya BinaryFormatter ile veriyi binary formatında bir dosyaya kaydedebilirsiniz. PlayerPrefs ile BinaryFormatter’ın dezavantajı, kullanıcı oyunu başka bir cihaza yükleyince satın aldığı eşyaların oraya taşınmayacak olmasıdır.

  34. fatih dedi ki:

    100.000 doları geçersek ne olur ?

    • yasirkula dedi ki:

      Ücretli olan Unity Plus’a geçiş yapmanız gerekir. Eğer geçmezseniz ve bu durumdayken oyununuzu Unity’nin ücretsiz sürümü ile geliştirdiğiniz tespit edilirse, çok büyük olasılıkla Unity’nin hakkınızda dava açma hakkı olur.

  35. nickname dedi ki:

    unity 5 32 biti windows için indirdim ama kurulumu yaparken bilgisayar kapanıyor. Aynı olay cmd açılınca da oluyor bunla alakası olabilir mi ?

  36. anonim dedi ki:

    hocam unity 5 ile unity 3d arasındaki fark nedir

  37. Yusuf dedi ki:

    https://play.google.com/store/apps/details?id=com.kAPPtan.crazyball
    bu uygulamadaki daire ve etrafındaki cisimin hareketini nasıl yaparız hocam

    • yasirkula dedi ki:

      Dışarıdaki çemberi yapmanın en kolay yolu, önce çemberi olmasını istediğiniz yere yerleştirip ardından çemberi daire gibi gözünüzde canlandırıp bu dairenin tam ortasında boş bir obje oluşturmak ve bu objeyi çembere parent olarak vermek. Artık bu objeyi döndürerek çemberi hareket ettirebilirsiniz. Top için ise çembere ve topa Bounciness’ı 1 olan bir Physics Material 2D verip topun Rigidbody 2D’sinin “Linear Drag”, “Angular Drag” ve “Gravity Scale”ini sıfırlayabilirsiniz.

      • Yusuf dedi ki:

        hocam top olayı tamamda çember olayını tam anlamadım maalesef

      • yasirkula dedi ki:

        – CemberParent
        — CemberObjesi

        Bu şekilde obje hiyerarşiniz olsun ve CemberParent, CemberObjesinin merkezinde yer alsın. Çemberi hareket ettirmek için CemberParent’ı döndürebilirsiniz.

  38. Mehmet Ali dedi ki:

    Hocam İyi Günler iki sorum olucak…
    1. 50 tane float değerini nasıl büyükten küçüğe sıralayabiliriim?
    2. internetten izlediğim hiçbir admob veya ads videolarından yararlanamadım.. bildiğiniz bir kaynak varmı?

  39. ahmet dedi ki:

    Hocam selamun aleyküm. Oyun içinde bir klavyem var. Metin alanına tıkladığımızda yanıp sönen dikey bir çizgi oluşturmak istiyorum. Türkçe adını tam hatırlayamadım. Input caret oluşturmak istiyorum. Nasıl yapılabilir şimdiden teşekkür ederim.

    • yasirkula dedi ki:

      Yanıp sönecek objeye loop eden bir animasyon verip bu animasyonda objenin renderer’ını açıp kapatabilirsiniz. Veya direkt Unity’nin UI-Input Field objesini de kullanabilirsiniz ve gerekirse canvas’ı World Space yapabilirsiniz.

  40. Barış dedi ki:

    Window>Rendering>Lightning Settings deki Realtime Lighting ve Mixed Lighting nedir? Bunları aktifleştirince unity de objelerin yerini oynatınca sağ altta bir yükleme gelip bekletiyor unity.

    • yasirkula dedi ki:

      Ben de çok bilmiyorum çünkü bu özellikleri kendim hiç kullanmadım; ama bildiğim kadarıyla konuşacak olursam:

      Mixed Lighting shadowmap oluyor, yani gölgeleri bir texture’a işleyerek gölge hesaplamalarından kurtulmaya yarıyor ancak sadece statik objelerde işe yarıyor. Bu seçenekte ışığın şiddeti veya yönü oyun esnasında değişmemeli.

      Realtime Lighting ise gölgelere etki etmiyor ama sadece sahnenin ışıklandırmasına etki edip daha gerçekçi bir ışıklandırma sağlıyor. Yine sadece statik objeler etkileniyor ama sahnedeki ışığın şiddeti veya eğimi değişince bir sıkıntı olmuyor.

      Bu iki seçeneği de kapatırsanız sağ alttaki bar artık çıkmaz.

  41. Serkan dedi ki:

    Merhaba hocam,
    Bir oyun geliştiriyorum ve bu oyunda PlayerPrefs ile bir takım değerler sakladım. Oyundan çıkıldığı zaman bir PlayerPrefs kaydının sıfırlanması gerekiyor.
    Kullanıcı eğer oyundan çıkmak için direkt mobil cihazının orta tuşunu kullanırsa bu kaydı nasıl sıfırlayacağımı bilmiyorum.
    Bu konuda yardımcı olabilir misiniz?
    Saygılar

    (Eğer derslerinizde anlattıysanız kusuruma bakmayın. Çok aradım ama bulamadım.)

    • yasirkula dedi ki:

      Oyundan çıkıldığı zaman sıfırlanması yerine oyun açıldığında sıfırlasanız aynı şeye denk gelmez mi?

      • Serkan dedi ki:

        Onu da yapmıştım da istediğim gibi olmamıştı. Neyse ki PlayerPrefs’e ihtiyaç kalmadan farklı scriptten kod çekerek de yapabileceğimi fark ettim. Yani bir sorun kalmadı. İlginiz için teşekkür ederim.

  42. yusuf dedi ki:

    hocam ben bir circular scroll kullanıyorum hazır olarak buldum fareyle kullanırken tek bir noltaya bastığımızda farenin tek bir konumu olması sebebiyle tıkla bırakta bi sıkıntı yok ama parmak biraz daha geniş bi alan kullandığı için tıkla bırakta scroll un x değeri değişiyor bunu nasıl engelleriz?

  43. Ahmet dedi ki:

    Hocam standard assets yüklerken sürekli crash bug yaşıyorum ne yapmam gerek

    • yasirkula dedi ki:

      Harddiskinizde yeterli boş yer olduğundan emin olun. İlaveten, dilerseniz Görev Yöneticisi’ni açıp Standard Assets’i yüklerken tam crash esnasında CPU veya RAM’in %100’e erişip erişmediğine bakın; belki sıkıntı bilgisayardadır. Aksi taktirde başka bir Unity sürümü kullanmayı deneyebilirsiniz.

      • Ahmet dedi ki:

        Harddiskimde yeterli yer var CPU %100’e erişmiyor.Bu arada kullandığım sürüm 5.6.6f2(32-bit)

      • yasirkula dedi ki:

        Daha güncel bir Unity sürümünde de deneyin derim. Belki artık Standard Assets eski Unity sürümlerini desteklemiyordur.

      • Ahmet dedi ki:

        Maalesef 32 bit i destekleyen en son sürüm bu.

      • yasirkula dedi ki:

        Unity’nin setup’ında hangi modülleri kuracağınızı seçerken (Android, WebGL vs.) Standard Assets de seçiliyordu sanırım; oradan kurarsanız Standard Assets’e Assets-Import menüsünden erişebilirsiniz diye tahmin ediyorum.

      • Ahmet dedi ki:

        Diğer asset leri yüklerken de aynı hatayı verdiğini fark ettim.Sıkıntı galiba bilgisayarımda.Gene de teşekkür ederim ilgilendiğin için.

  44. js dedi ki:

    İyi günler hocam. RightDown ve RightUp diye functionlar var ve bunlar pointerdown ve pointerup buton metodudur.Butona basınca Right=true çekince Right=false yapıyor.Aynı şeyler Left için de geçerli.Buton metodunun tek görevi bu.Buna göre aşağıdaki koddaki gibi hem right hem left i yazınca kod çalışmıyor.Sadece right veya sadece lefti yazınca sorunsuz çalışıyor.İkisi farklı function farklı bool ne çakışıyor çözemedim.Tam istediğim gibi çok smooth bir kontrol sistemi oldu ama dediğim gibi ikisini birden yazınca çalışmıyor lütfen yardım hocam.

    //aracın y rotasyonu belli bir açıya gelince tekerler düzeltilerek dönüş sınırlanır//
    var Roty:Vector3 = transform.eulerAngles;
    while( Roty.y > 180 ){
    Roty.y -= 360;
    }
    while( Roty.y 20||Left==true&&Roty.y<-20){
    steerInput=Mathf.Lerp(steerInput,0,4*Time.deltaTime);
    }
    if(steerInput==0){
    transform.rotation.y=0;
    }

    ///RIGHT///
    //Sağa basınca 20 dereceye kadar döner bırakılınca whellcolliderler sıfırlanır//

    if(Right==true&&Roty.y80){
    LeftSkidmark();
    }}
    if(Right==false){
    steerInput=Mathf.Lerp(steerInput,-20,4*Time.deltaTime);
    }
    if(Right==false&&Roty.y-20){
    steerInput=Mathf.Lerp(steerInput,-20,2*Time.deltaTime);
    if(currentSpeed>80){
    RightSkidmark();
    }}
    if(Left==false){
    steerInput=Mathf.Lerp(steerInput,20,4*Time.deltaTime);
    }
    if(Left==false&&Roty.y>0){
    steerInput=0;
    }

    • yasirkula dedi ki:

      Siz Right’a basarken Left boşta olacağı için, o esnada Right==true’ya ilaveten Left==false kodu da çalışıyor ve büyük ihtimalle bu iki kodun yaptığı şeyler birbirini sıfırlıyor. Sadece her iki tuşa da basılı değilse bir şey yapmak istiyorsanız, Left==false&&Right==false koşulu kullanın.

      • js dedi ki:

        O tür bütün olasılıkları da ekleyerek denedim olmadı birbirini engelliyor hocam.Yapmak istediğim şey dönüş olayını gerçekçi olması için her türlü wheelcolliderle yapmak.Bu işlemi yön tuşlrı bırakıldığında aracın transform.rotation.y’sini yavaşça 0’a eşitleyince de oluyor ama çok yapay duruyor kasanın süspansiyonu rigidbody fizik etkisi bozuluyor.Aslında şöyle birşey lazım hocam transform.rotation.y yi direkt script ile değiştirdiğimiz gibi wheelcollideri de değiştirmek mümkün mü?
        Mesela benim aracın ön tekerlerin dönüş sistemi şöyle

        wheels[0].steerAngle = maxangle*Time.deltaTime * steerInput;
        wheels[1].steerAngle = maxangle*Time.deltaTime * steerInput;

        Mesela right left tuşları bırakıldığında hiç function bollean olayına girmeden
        aşağıdaki gibi manuel olarak wheelcollider açısıyla nasıl oynayabiliriz varmıdır bir yöntemi?Tuşlar basılı değilken veya basıp çekince wheelcolliderler her zaman kendi rotasyon y sini sıfırlasın z ekseninde dümdüz olsun.Bu kodu denediğimde hata vermiyor ama bişeyde olmuyor.Bu dediğim bişeyi youtubda görmüştüm quaternion ile yapıyordu ama şimdi bulamadım video silinmiş galiba.

        wheels[0].transform.rotation.y=Mathf.MoveTowards(wheels[0].transform.rotation.y,0,1);
        wheels[1].transform.rotation.y=Mathf.MoveTowards(wheels[0].transform.rotation.y,0,1);

      • yasirkula dedi ki:

        Dediğiniz gibi bir sistem nasıl yapılır bilmiyorum. Youtube’da gördüğünüz kod ise belki şöyle bir şey olabilir:

        wheels[0].transform.rotation=Quaternion.RotateTowards(wheels[0].transform.rotation,Quaternion.identity,1);

  45. Onur dedi ki:

    Merhaba hocam update fonksiyonu dışında bir fonksiyonda yaptığım işlemler teker teker görünmüyor.Fonksiyondan dönen sonuç geliyor ekrana ama ben aşamaları da gelsin istiyorum nasıl yapabilirim?

    • yasirkula dedi ki:

      Coroutine kullanabilirsiniz. Örneğin şu koddaki AsamaAsamaIslemYap fonksiyonunu çağırabilirsiniz:

      void AsamaAsamaIslemYap()
      {
      	StartCoroutine( AsamaCoroutine() ); // AsamaCoroutine coroutine'ini başlat
      }
      
      IEnumerator AsamaCoroutine()
      {
      	Debug.Log( "islem 1" );
      	yield return null; // 1 frame bekle
      	
      	Debug.Log( "islem 2" );
      	yield return null; // 1 frame daha bekle
      	
      	Debug.Log( "islem 3" );
      	yield return new WaitForSecondsRealtime( 1.5f ); // 1.5 saniye bekle
      	
      	Debug.Log( "islem 4" );
      }
      
  46. yusuf dedi ki:

    hocam ben bir nesnenin instantie ile klonunu alıyorum.ananesneyi sürükleyebilmek için box collider özelliği vardı ama klonun sabit kalması lazım bunun için box collider özelliğini nasıl kapatırım.

    • yasirkula dedi ki:

      Objenin fizik motoru tarafından hareket ettirilmesini istemiyorsanız, Rigidbody’sinin isKinematic’ini true yapabilirsiniz. Aksi taktirde tam demek istediğinizi anlayamadım çünkü Box Collider ile objenin sabit kalması arasında doğrudan bir bağlantı hatırlamıyorum.

  47. yasirkula dedi ki:

    Edit-Project Settings-Editor-Version Control Mode’un “Visible Meta Files” olduğundan emin olup projeyi tekrar Mac bilgisayarınıza atmayı deneyebilirsiniz. Eğer git veya svn kullanıyorsanız bu değişiklik otomatik olarak git’e yansır ve yeni bir commit attıktan sonra sorun düzelir diye düşünüyorum.

Yusuf için bir cevap yazın Cevabı iptal et

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 )

Google fotoğrafı

Google 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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.