Ziyaretçi Defteri


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


1.219 yanıt

  1. Sıddık Çiçek Avatar
    Sıddık Çiçek

    Selamun aleyküm hocam çok uzun zaman oldu yazmayalı nasılsınız? Haliniz hatrınız ne haldedir?

    1. yasirkula Avatar

      Aleykümselam teşekkür ederim iyiyim Elhamdülillah 🙂 İş güç uğraşırken siteye hiç bakma fırsatım olmuyor maalesef. Siz nasılsınız neler yapıyorsunuz?

      1. Sıddık Çiçek Avatar
        Sıddık Çiçek

        Elhamdülillah hocam iyiyim ben de teşekkür ederim. Asıl işiniz yazılım değil mi?
        Ben de ne yapayım Fizyoterapist olarak hayatıma devam ediyorum elhamdülillah. Zamanında yapay zeka filan yokken size çok danıştım oyun yapmaya çalışırken çok yardımcı oldunuz zamanında Allah razı olsun dedim halinizi hatrınızı sorayım 🤗

      2. yasirkula Avatar

        Sizden de Allah razı olsun, iyi olmanıza sevindim 🌹 Sorduğunuz için teşekkür ederim.

      3. Sıddık Çiçek Avatar
        Sıddık Çiçek

        Sağolun hocam. Rica ederim ben herşey için teşekkür ederim. Sağlık sorununuz olursa danışmanızı gerektirecek Allah’ın izniyle ben buradayım. Mailimi de görebiliyorsunuzdur zaten. Dilediğiniz şekilde ulaşabilirsiniz. Allah’a emanet olun.

  2. Hikari Avatar
    Hikari

    Selamlar! Oynadığım bir oyunda adınız credits kısmında adınız geçiyordu. Gelecek projelerinizde başarılar dilerim.

    1. yasirkula Avatar

      Haber verdiğiniz için teşekkür ederim. Hangi oyunda denk geldiniz 🙂

  3. Yusuf Avatar
    Yusuf

    Hocam Selamun aleyküm. Ben 4. sınıf bilg. müh. öğrencisiyim. Geçmiş senelerim boş vakitle geçti alan seçemedim. Aile içi sorunlarım oldu. Yani anlayacağınız bomboş geçti. Yeni düzene oturuyorum. Alanımı kesinlikle seçtim Oyun alanında kendimi geliştirmek istiyorum. C# orta seviyeyim diyebilirim. Şuan bu konumda udemyden bir kursa başlamayı düşünüyorum. Ama kafam çok karışık. Tavsiye edeceğiniz bir şey var mı?

    1. yasirkula Avatar

      Aleykümselam tercihiniz şimdiden hayırlı olsun. Udemy’de beğenilen dersleri takip edebilirsiniz, mutlaka faydası olacaktır. Dilerseniz YouTube’da ve Unity’nin kendi sitesinde de çok sayıda ücretsiz içerik var ve bunlar da çok kaliteli olabiliyor. Örneğin Unity’e başlangıç için ben Brackeys, Code Monkey ve Unity’nin resmî tutoriallerini önerebilirim. Hem bunlara hem Udemy’e de bakabilirsiniz. Öğrendiğiniz bilgileri pratiğe dökmek için ise ya kendiniz basit düzey oyun prototipleri üretebilirsiniz ya da Unity kullanan bir firmada staj/part time çalışabilirsiniz.

      Transparanlık adına şunu da belirtmek istiyorum: gördüğüm kadarıyla şu anda tüm dünyada oyun sektöründe işten çıkarmalar çoğaldı. COVID zamanında oyun sektörü büyüme yaşamış ve yeni yeni firmalar kurulmuştu ama sektör haddinden fazla şişmiş olmalı ki şimdi maalesef küçülüyor. O yüzden gerçekçi olmak istiyorum. Birkaç sene öncesine göre, şu anda iş bulma olasılığınız daha düşük. Ancak kendinizi geliştirip oyun prototipleri üreterek şansınızı elinizden geldiğince artırabilirsiniz (kaliteli kod yazmaya çalışın). Yaptığınız oyun prototipleri, Google Play’de yayımlamayı düşündüğünüz özgün fikirler olmadığı sürece, onları tamamen açık kaynak kodlu olarak GitHub üzerinde paylaşmanızı önerebilirim. Ama paralı bir asset kullanırsanız GitHub’da paylaşmayın.

      1. Yusuf Avatar
        Yusuf

        Teşekkürler hocam.

  4. cazzsaa Avatar
    cazzsaa


    Selamun aleyküm hocam. Nasılsınız? Bir şey soracaktım. CC0 Lisansına sahip herhangi bir asseti oyunum için kullanmam bana ileride herhangi bir sorun oluşturur mu? Çünkü biraz araştırdım herhangi bir şekilde assetin içeriğinde sorun olursa filan bizi alakadar etmez deniyor. Ama kamuya açık olduğu için herkes tarafından kullanılabilir deniyor. Bu durumda ben bu asset / assetler üzerinden ticari anlamda iş yapsam para kazansam da içeriğinde herhangi bir marka ya da firmanın logosu, ismi filan yoksa reklam vb. şeye girmediyse herhangi bir sorun oluşturmaz değil mi?

    1. yasirkula Avatar

      Aleykümselam. Mesajınızı yeni gördüm. Ben CC0 lisanslı görselleri credit vermeden kullanıyorum. Benim anladığım kadarıyla CC0’da credit vermek gerekmiyor. Ama CC0 olsa bile, görseli aldığınız sitede “credit vermelisiniz” yazıyorsa bence nolur nolmaz uzak durun. Bir problem olursa sorumluluk kabul etmiyorum 🙂

      Credit gerektirmeyen asset’ler arasında en meşhurları arasında Kenney Game Assets var. Eğer işinize yarayanlar olursa, onları gönül rahatlığıyla kullanabilirsiniz.

  5. sıddık çiçek Avatar


    Selamun aleyküm hocam, ben Unity’de zamanında küçük bir oyun yaptım. Lakin orada yazdığım, araştırdığım hiçbir kodu not almadım. Öğrenmeden, hafızada kalıcı olmadan ilerledim. Şimdi tekrar başına geçtiğimde en basit kodları bile bilmediğimi fark ettim. Bu durumda Unity Learn ‘deki tutorial derslerine başladım. Burada gördüğüm her türlü kodu yapay zekaya sorarak ne işe yarar ne yapar nerelerde kullanılır falan filan öğrenmeye hedefledim. Başta yazarak ilerleyeyim dedim de yazarak çok zaman kaybı olduğunu fark ettim. Word dosyasında not etmeye kalkıştığımda hiç bir anlam ifade etmediğini fark ettim. Ben bu durumda sizce deftere elle bizzati yazarak devam etsem çok zaman almasına rağmen daha kalıcı bir öğrenme olur mu? İlerleyen zamanlarda bu kodları nerede nasıl kullanmam gerektiğini araştırmaya gerek duymadan direkt yazabilecek duruma gelir miyim sizce? Harcadığım zamana değer mi?

    1. yasirkula Avatar

      Aleykümselam. Mesajınızı yeni gördüm. Ben Unity’e ilk başladığımda Word dosyasına not ederek gitmiştim ve faydasını görmüştüm. Daha sonra Word dosyasını sitemde de paylaşmıştım ve başkaları da faydasını gördüklerini söylemişti. Artık sadece çok çok elzem şeyleri not alıyorum. Örneğin belli bir problemle birden çok kez karşılaştıysam ve her seferinde çözümü uzun süre araştırmam gerektiyse (bir başka deyişle unuttuysam) o zaman not alıyorum.

      Daha önce Timeline’da çalışmalarım olmuştu ama yıllardır yüzüne bakmadım ve unuttum sayılır. Siz de neye bakarsanız bakın, bir süre boyunca o şeye bir daha bakmadığınızda unutursunuz. Not almak (veya kodu uygulamaya dökmek) bu süreyi bence uzatıyor ama sonsuza dek aklınızda kalmasını sağlamıyor. Benim önerim, aktif olarak işinize yarayacak tutoriallere odaklanın; sırf izlemiş olmak için bir tutorial’i izlemeyin. O tarz size ırak tutorial’lere, işiniz düşünce bakın. Ben kaç seferdir UI Toolkit ile alakalı makale okuyorum ama bir kez bile pratiğe dökmediğim için, iş pratiğe gelince neredeyse yeni baştan tutoriallere bakmam gerekecek. Kendi vaktime yazık ediyorum.

  6. wolf Avatar
    wolf

    Unity 2019.4.10f1 (64-bit) sürümü kullanıyorum unity game ekranında sorunsuz bir şekilde oynuyabiliyorum ama android telefonumda oynayamıyorum. neden oynayamıyorum. örnek verecek olursam. game ekranında mermileri tek tek atıyorum veya bombaları tek tek atıyorum ama android telefon da bomba atamıyorum veya mermiler çok hızlı gidiyor.

    1. yasirkula Avatar

      Input kontrolünü FixedUpdate’te yapıyorsanız Update’te yapın ve mermilerin hareket kodunda hız değerini Time.deltaTime ile çarpmıyorsanız çarpın.

      1. Wolf Avatar
        Wolf

        Game ekranında düzgün çalışıyorda android telefonda neden çalışmıyor. Android de bomba bile atamıyorum. Game ekranında atıyorum. Benim baz almam gereken yer game ekranı değil midir? Game ekranında ne görüyorsam android telefonda da aynısı görmeyecek miyim?

      2. yasirkula Avatar

        Unity’nin Game ekranı ile Android arasında ekran çözünürlüğü, framerate ve GPU özellikleri gibi farklılıklar olduğu için, bazı konularda davranış farklılıkları gözlemleyebilirsiniz. Ben verdiğiniz örneklerde framerate’ten şüpheleniyorum ancak kodunuzu görmediğimden ötürü sadece tahminde bulundum. Mesela bir cihaz 60 fps’te render alıyordur başka cihaz 200 fps’te, bu da bir cihazda Update’in saniyede 60 kere çalışması derken başka cihazda 200 kere çalışması demek oluyor. Her Update çağrılışında kurşunu 1 metre öteye taşıdığınızı varsayarsak, bir cihazda saniyede 60 metre giden kurşun başka cihazda saniyede 200 metre gider. Time.deltaTime ile çarpmak, bu sorunu çözmek için kullanılıyor.

      3. wolf Avatar
        wolf

        mermi hareket ettirdiğim kod
        void Update()
        {
        transform.Translate(Vector3.right * speed * Time.deltaTime);

        }
        yine aynısı oluyor.

      4. yasirkula Avatar

        Burda gerçekten de anormal tutarsızlıklar var. Arabanın süspansiyonu bile Android’de farklı davranıyor. İlk iş olarak logcat’te herhangi bir hata var mı diye bakmanızı öneririm. Varsa o hataları çözdüğünüzde bu sorunlar da çözülebilir.

      5. wolf Avatar
        wolf

        başka bir sürüme geçsem sorun düzelir mi? ya da ayarlarda bildiğiniz bir ayar var mı?

      6. yasirkula Avatar

        Bence düzelmez.

      7. wolf Avatar
        wolf

        test yapmak istedim mermiyi spawnladım o zaman düzgün çalıştı android de . videoda görmüş olduğunuz mermiyi ve bombayı havuzdan çekiyorum. acaba havuzdan çektiğim mermi ve bombadan mı kaynaklanıyor sorun.

      8. yasirkula Avatar

        Editördeyken de aynı kodu çalıştırıyorsanız, farklı çalışmasını beklemiyorum. Bence kodunuzun ilgili kısımlarını ufak öbekler şeklinde paylaşın, belki gözüme bir sıkıntı çarpar.

      9. wolf Avatar
        wolf

        if (carShaking)
        {
        rigidbody2dCar.mass = carShakingMass;
        shakingFloat += Time.deltaTime;
        denemetest.text = shakingFloat.ToString(“f2″) + ” shakingFloat”;
        if (shakingFloat >= 0.3f)
        {
        rigidbody2dCar.mass = currentMass; //carShaking = false; } } else { denemetest.text = shakingFloat.ToString("f2") + " shakingFloat"; shakingFloat = 0; }

        if (Input.GetKeyDown(spawnTusu))
        {
        denemetime = 0;
        Fire();
        turretSound.PlayOneShot(turretAudio); //
        carShaking = true; //
        }

        android de carShaking true olmuyor. turretSound.PlayOneShot(turretAudio) ve ses de çalmıyor..

      10. yasirkula Avatar

        Bu kod FixedUpdate’te değil, değil mi? Daha önce dediğim gibi, input kodlarınızın Update içerisinde olması gerekiyor. Bu arada spawnTusu bir klavye tuşu ise, Android’de bu desteklenmiyor olabilir çünkü orada fiziksel klavye yok. Mesela test amaçlı onu Input.GetMouseButtonDown(0) yapmayı deneyin. Ekrana her dokunduğunuzda içindeki kod çalışacaktır. FixedUpdate->Update olayını ise her halükarda yapın.

      11. wolf Avatar
        wolf

        yardımlarınız için teşekkür ederim. kod da bazı değişiklikler yaptım sorun düzeldi. ama unity game ekranını baz aldığım için oyunumu ona göre dizayn ettim. android de test ettiğim zaman da şaşırdım. neden böyle oldu diye.

      12. yasirkula Avatar

        Sorunun çözülmesine sevindim. Bu vesileyle, editör ve gerçek cihazda her şeyin birebir aynı olmayabileceğini deneyimlemiş olduk.

      13. nihilus Avatar
        nihilus

        hocam selamın aleyküm iyisinizdir umarımm.Scrol view in contentine image(UI) ışınlatıyorum fakat boyutu olsun,konumu olsun alakasız yerlere ışınlıyor.Bunu nasıl çözebilirim şimdiden teşekürler

      14. yasirkula Avatar

        Aleykümselam. Bir Image’ı SetParent ile ScrollRect’in Content’ine child olarak veriyorsunuz diye anlıyorum. SetParent’ın 2. parametresini true veya false vermeyi deneyebilirsiniz. Problem başka bir şeyse biraz daha açabilir misiniz?

      15. nihilus Avatar
        nihilus

        hocam iyi akşamalar tekrardan,scrol view contentine vertical layout group ve content size filter compenentleri eklenmesi gerekiyormuşekleyince sorun çözüldü.Sağolun yinede.

  7. Çisil Avatar
    Çisil

    Unityde Python Kullanarak Sualtı Simülasyonu
    Unity oyun motorunu kullanarak bir sualtı aracının simülasyonunu yapıyorum. Fakat pythondaki görüntü işleme kodlarını unitynin sanal kamerası aracılığı ile alınan görüntüler üzerinden çalıştırmayı başaramadım. Yine aynı şekilde pythondaki bir hareket kodu ile unity içerisindeki aracın hareketini sağlayamadım.Bu konuda unity dokümantasyonları dahil bir çok kaynağı araştırdım ama bir çözüm bulamadım.Yardımcı olabileceğiniz herhangi bir kaynak veya rehber hakkında yönlendirebileceğiniz kaynak var mıdır?

    1. yasirkula Avatar

      Mesajınızı yeni gördüm kusura bakmayın. Python benim maalesef tecrübesiz olduğum bir dil o yüzden bu konuda yardımcı olamayacağım. Python for Unity diye resmî bir package var, benim tek önerebileceğim şey onu incelemeniz olur.

      1. Çisil GEÇER Avatar
        Çisil GEÇER

        Yasir Bey Merhabalar. Size ek bir soru daha sormak istiyorum. Yine bu simülasyon ile ilgili olmakla beraber sorum şu unitynin kendi kamerasından aldığım görüntüyü gerekli Python kodları ile işlemem gerekiyor. Python tarafında bir bilginiz olmadığını belirtmişsiniz peki sanal görüntüyü nasıl alıp işlemeye uygun bir hale getireceğim hakkında bir bilginiz var mı?

      2. yasirkula Avatar

        Python’un nasıl bir input beklediğini biliyor musunuz (PNG sekansı, MP4, başka bir format)? Ben ayrıca “unity python image processing” şeklinde bir arama yapmanızı öneririm.

      3. Çisil GEÇER Avatar
        Çisil GEÇER

        Hayır bildiğim tek şey yani olması gereken unitydeki kamera görüntüsü ile eş zamanlı olarak bu işlemi gerçekleştirmesi gerektiği. Yani nasıl bir sualtı aracı kendi kamerasından gelen görüntü ile işlemleri hallediyorsa simülasyonda da aynı mantık olmalı.

      4. yasirkula Avatar

        Görüntü işleme diyince genelde OpenCV ismini duyuyorum. Şimdiye kadar hep gerçek kamera görüntüsü üzerinden çalıştığını gördüm, Unity’nin render aldığı sanal görüntü ile çalışır mı bilmiyorum. Bu konuyla ilgili gerçekten destek bulabilmek için Unity’nin forumlarında bir başlık oluşturmanızı önerebilirim.

      5. Çisil GEÇER Avatar
        Çisil GEÇER

        Forumlarda başlık oluşturdum ama henüz bir sonuç alamadım. Python kodlarımızda zaten opencv üzerinden görüntü işlemesi yapacaklar. Daha önce bu işlem Unity üzerinden yapılmış yani böyle simülasyonlar oluşturulmuş fakat yeterli kaynak ve bilgi yok.Açıkçası internette araştırma yaparken sizin sitenizede denk geldim ve sormak istedim.

  8. Oğuzhan Avatar
    Oğuzhan

    Boş zamanım çok ve 6 aydır unity öğreniyorum, seviyemi en azından navMesh ile basit bir futbol oyunu yapmak olarak tanımlayabilirim. Ne yapıp ne yapamayacağım hakkında biraz bilgi sahibi oldum artık.

    Unity’ye ayıracağım zamanı başka bir ek iş için ayırsam aylık 600 dolar civarı bir kesin gelir elde edebiliyorum. Amacım bu 600 doları geçen geliri Unity ile elde etmek ama ne gibi kazanç elde edebilirim hiç fikrim yok.

    Açıkcası oyun yapmak çok büyük bir iş ve yukarıdaki seviyeden yola çıkarak emek verilse sizce haftalık 40 saatimi ayırmam karşılığında 600 dolar barajını geçme olasılığım ilk 2 yıl için ne olur?

    1. yasirkula Avatar

      Asgari maaşla çalışmaktan bahsediyorsunuz, bence eğer kendi başınıza değil de bir şirkette çalışırsanız bunun olmaması için bir sebep yok. Şu anda Türkiye’de daha çok casual ve hyper-casual türlerinde mobil oyunlar türeten firmalar var ve siz de bu türde halihazırda var olan oyunların mekaniklerini klonlamaya çalışıp veya tamamen kendi fikriniz olan casual bir oyunu geliştirip akabinde bu çalışmalarınızı CV’nize koyarak (örneğin GitHub’da paylaşarak) iş başvurularında bulunursanız, iş bulabileceğinizi düşünüyorum. Unity ile çalışırken ne kadar keyif aldığınız ve kendi kendinizi geliştirmeye ne kadar teşvik ettiğiniz de önemli. Mümkünse, keyif almadığınız bir işte çalışmayın. Gerçekten keyif alıyorsanız da CV’nizi geliştirirken elinizden geldiğince güzel işler ortaya çıkarmaya çalışın, laylaylom oldu bittiye getirmeyin.

      1. nihilus Avatar
        nihilus

        hocam merhabalar unityde player prefsle para mı kaydettim örnek veriyorum param 10 tl ,butona bastım 20tl oldu .oyunu durdurup tekrar açtım hala 20 tl bir sorun yok parayı kaydetmiş.fakat oyunu ilk defa farklı bir cihazda çalıştırınca param 0 tl olarak gözüküyor bunu nasıl düzeltebilrim şimdiden çok teşekür ederim.

      2. yasirkula Avatar

        Oyunu ilk defa açtığınızda sabit 50 TL gibi bir parayla başlamak istiyorsanız, PlayerPrefs.GetInt’in 2. parametresini 50 girebilirsiniz. Ama eğer 20 TL’nin diğer cihaza da geçmesini istiyorsanız, o zaman uygulamanızda login ve cloud save özellikleri olması gerekiyor çünkü kullanıcıyı ayırt etmek için kullanıcının login olması lazım ve parasının en son değerini de bir yerde (bulut) kaydedip daha sonra ordan çekmeniz lazım.

      3. Nihilus Avatar
        Nihilus

        Hocam
        int para =50;

        public void on_lira_ekle()
        {
        para+=10;
        PlayerPrefs.GetInt(nameof(para), para) ;

        }

        void start()
        {
        PlayerPrefs.GetInt(nameof(para), para) ;
        }
        void update()
        {
        PlayerPrefs.SetInt(nameof(para), para) ;
        }

        //hocam kodlar bu şekilde. burda kaydetmek için başka bir değişkenle daha uğraşmamak için nameof kullandım. Hatam nerede bulamadım hocam yardımcı olursanız çok sevinirim

      4. yasirkula Avatar

        Değer kaydetmek için (on_lira_ekle) PlayerPrefs.SetInt fonksiyonunu kullanmanız lazım. Değeri almak için ise: para = PlayerPrefs.GetInt(nameof(para), 33) (eğer para daha önce hiç kaydedilmediyse 33 döndürür).

    2. Nihilus Avatar
      Nihilus

      Tamamdır hocam çok sağolun

      1. nihilus Avatar
        nihilus

        Yasir hocam merhabalar.Oyunuma doların anlık fiyatını eklemek istiyorum ve bunu yapabilmem için oyuna server sistemi mi eklemem gerekiyor? oyunum singleplayer, sadece doların fiyatı için server sistemi ekleyip büyük masrafın altına girmek istemiyorum.Başka nasıl yapabilirim hocam cevaplarsanız çok sevinirim.

      2. yasirkula Avatar

        Merhaba, bu konuda deneyimim olmadı ama “how to get currency exchange rate in c#” şeklinde aratarak, çalışan ücretsiz bir çözüm bulabileceğinize inanıyorum.

  9. Yusufhan Arslan Avatar
    Yusufhan Arslan

    Selamün aleyküm başkan benim GTA tarzı projem var bir Map ekledim map’ı açınca harita açılıyor GTA San Andreas gibi haritada Playerİcon dan yani oyuncunun bulunduğu noktadan ve bir butona ekleyerek o butona basınca gitmek istinilen yere bir yol çizelgesi oluşturmak istiyorum lineRenderer işimi görmedi yada ben yapamadım.

    1. yasirkula Avatar

      Harita UI sistemi ile oluşturulduysa ve LineRenderer UI’ın arkasında kalıyorsa (Screen Space-Overlay canvas’ta öyle olur), şunun gibi UI için bir çözüm bulmanız gerekiyor: https://www.youtube.com/watch?v=–LB7URk60A

  10. cazzsaa Avatar
    cazzsaa

    Selamun aleyküm hocam, Unity de scrollbar kullanmaya çalıştım ama herhangi bir şekilde hareket ettiremiyorum. Inspector panelinde scrollbar componentinin içerisinde on Value changed (Single) kısmı boş kaldı. Oraya bir script filan mı eklemem gerekiyor. Nasıl bir yol izlemem gerekiyor?

    1. yasirkula Avatar

      Aleykümselam. Ya scrollbar’ın üzerinde görünmez bir UI objesi vardır ve tıklamalarınızı o UI objesi yiyodur, ya da sahnede Event System objesi yoktur (GameObject-UI-Event System).

      1. cazzsaa Avatar
        cazzsaa

        Teşekkürler hocam.

  11. cazzsaa Avatar
    cazzsaa

    Selamun aleyküm hocam, algoritma da veya programlama da ileri düzey matematik ne işe yarıyor? Öğrenmem neden gerekli?

    1. yasirkula Avatar

      Aleykümselam. İleri düzeye yorum yapamam ama matematik bilgisi gerekebiliyor. Örneğin frikik esnasında topun gideceği güzergahı hesaplayıp önizlemek için, hareketli bir objeyi vurmak için hangi yönde nişan almanız gerektiğini bulmak için matematik/geometri gerekiyor. Bu problemlerin bazılarının çözümü internetten bulunabiliyor, bazense kendiniz çözüm üretmek zorunda kalıyorsunuz.

      1. cazzsaa Avatar
        cazzsaa

        Anladım. Teşekkür ederim.

  12. cazzsaa Avatar
    cazzsaa

    Selamun aleyküm Yasir ve Emre Hocam, bu sorum her ikinize de. Farklı tecrübeler farklı bilgilerdir diye düşünerekten ikinize de sormak istedim. Ben algoritmayı temel olarak öğrendim ve soruları da filan buldum çözebildiğimi çözdüm. Şimdi de https://aof.sorular.net/ozet/algoritmalar-ve-programlama-p7-unite-2-diziler-bagli-listeler-kuyruklar-ve-yiginlar sitesinde algoritma ve programlama dersleri buldum. Bu ders içerikleri oyun yapımında benim işime yarar mı? Ona göre bu kaynaktan değil de başka kaynaktan mı devam etmeliyim?

    1. yasirkula Avatar

      Aleykümselam. Derste bahsedilen array, Stack ve Queue işinize yarar. LinkedList kullandığımı hiç hatırlamıyorum. Benim en sevmediğim şey, terimlerin Türkçe olması. Öyle olunca bir problemi İngilizce araştırması zor olur. Yığın yerine hep Stack kelimesinin kullanılmasını kesinlikle tercih ederdim.

      1. cazzsaa Avatar
        cazzsaa

        Anladım. Peki anlamadığım başka bir husus var. Bu algoritma, içeriğindeki bu array, stack falan filan oyun geliştirme aşamasında ne işime yarayacak. Nerede ve nasıl kullanacağımı anlamadım. Mesela karakterim için hareket kodu yazarken mi algoritma kullanacağım. Yoksa map hazırlarken mi, silah varsa oyunda mermi çıkış hızını mı algoritmayla ayarlayacağım neyi ayarlayacağım bu algoritmayla.

      2. yasirkula Avatar

        Array ve List her yerde kullanılıyor. Birden çok şeyi içinde depolayan bir veri türüne her zaman ihtiyaç oluyor. Örneğin sahnedeki tüm düşmanları bir List’te tutabilirsiniz. Veya satranç tahtasındaki taşların durumunu 2 boyutlu bir array’de tutabilirsiniz. Veya fare ile tıkladığınız noktada hangi objelerin olduğunu bir Array/List’te tutabilirsiniz.

        Ben algoritma kullanmayı, çoğunlukla kod yazmakla eş anlamlı görüyorum çünkü internette algoritma nedir diye arattığınızda aldığınız sonuçlar bu izlenimi veriyor. Bence algoritmaya problemlerin çözümü olarak bakmaktan ziyade, problemleri çözme eyleminin eş anlamlısı olarak bakın.

      3. cazzsaa Avatar
        cazzsaa

        Heee yani kod yazmaya başlamadan önce algoritma ile yazıp çizip daha sonrasında mı kodlayacağız tam oturmadı açıkcası kafamda.

      4. yasirkula Avatar

        Waterfall yazılım modelinde dediğiniz gibi her şey önceden planlanıyor sonra kodlamaya geçiliyor. Agile yazılım modelinde ise daha dinamik. Siz nasıl rahat ediyorsanız öyle yapabilirsiniz, evrensel bir doğru yöntem yok.

      5. cazzsaa Avatar
        cazzsaa

        Bu yazılım modellerinden haberim yoktu. Teşekkür ederim. Bir de siz hangisini ve neden önerirsiniz?

      6. yasirkula Avatar

        Bu ikisi arasından Agile’ı öneririm çünkü geliştirme safhasının yarısındayken de üründe değişiklikler yapabilmenize imkan sağlıyor (diye biliyorum). Ama ben şunu bunu kullanıyorum demiyorum, muhtemelen Agile’a yakın yazılım geliştiriyorum ama Agile yazılım geliştirmede şu süreçler işlenir o halde ben de bu süreçleri harfiyen uygulamalıyım kafasında değilim. Bence işin teorisine takılmayın çünkü çok takılıyorsunuz gibime geliyor. Unity’nin kendi web sitesindeki dersleri açıp oradan Unity’nin kod kütüphanesine aşina olmaya devam edin. En azından benim önerim bu şekilde çünkü ben teori ağırlıklı konulara ilk safhalarda çok odaklanırsam hemen bunalırdım diye tahmin ediyorum. Array’leri vs. öğrenmeyi algoritma olarak görmeyin, onlar algoritmalarınızda kullanacağınız temel yapı taşları. Onları öğrenmeye kesinlikle devam edin. Unity’nin web sitesinde de yaygın veri türleri hakkında dersler var diye hatırlıyorum.

      7. cazzsaa Avatar
        cazzsaa

        Hee istediğimiz gibi bir değişikliği Alige’ de yapabildiğimiz için onda daha özgürüz. Evet biraz takan bir insanımdır. Aklıma yatmadıkça şüpheler kafamı yiyor ondan takıyorum. Önerileriniz için çok teşekkür ederim.

  13. sıddık Avatar
    sıddık

    Hocam yapay zeka kullanarak Unity’de oyun yapacağım. Ama çok yapay zeka var ben bu zamana kadar ChatGPT kullandım ama başka birçok seçenek var. Hangisini kullanmalıyım? Ya da kullanabilirim?

    1. yasirkula Avatar

      ChatGPT vari yapay zekaları henüz kullanmadım 🙂 Siz kendi deneyimlerinizi paylaşmak isterseniz buyurun tabi ki.

      1. cazzsaa Avatar
        cazzsaa

        yani chatgpt kullandım. Ama oyun geliştirmeye başlamadım henüz. Sadece merak ettiğim, internette aylarca araştırma yaparak bulmaya çalıştığım kodlara 30 saniye de ulaşmak inanılmaz güzel oluyor gerçekten. Bir de kodun açıklamasını yapıyor inanılmaz. soru cevap şeklinde ilerliyorsunuz böyle kesinlikle tavsiye ederim.

      2. cazzsaa Avatar
        cazzsaa

        Mesela bunu sordum “Unity de for döngüsünü örnekle aqçıklamanı istiyorum. Özellikle böyle for döngüsü oluşturduktan sonra [i] yazıyorlar ya bunu hiç anlamış değilim. Ne anlama geliyor?”, bana verdiği cevap şu şekilde ” Elbette, Unity içinde for döngüsünü örnekleyeyim ve [i] ifadesini açıklayayım.
        using UnityEngine;

        public class ForDongusuOrnegi : MonoBehaviour
        {
        void Start()
        {
        // Basit bir for döngüsü
        for (int i = 0; i < 5; i++)
        {
        Debug.Log("Döngü adımı: " + i);
        }
        }
        }

        Bu örnekte, for döngüsü kullanılarak 0'dan 4'e kadar olan sayıları ekrana yazdırıyoruz. [i] ifadesi, döngünün her adımında i değerinin o anki değerini temsil eder. Bu örnekte i, sırayla 0, 1, 2, 3 ve 4 olacaktır.

        for döngüsü aşağıdaki parçalardan oluşur:

        1) int i = 0: Bu, döngünün başlangıç değerini belirtir. Döngü bu değerden başlar.
        2) i < 5: Bu, döngünün devam edeceği koşulu belirtir. Döngü, bu koşul sağlandığı sürece devam eder.
        3) i++: Bu, her döngü adımında i değerini bir artırır. i++ ifadesi, i = i + 1 ile aynıdır.
        4) Döngü içinde yapılacak işlemler: Döngü adımı her çalıştığında bu işlemler gerçekleştirilir.
        [i] ifadesi, döngünün her adımında i değerinin o anki değerini ifade eder. Bu değer, döngü içinde yapılacak işlemlerde kullanılabilir. Örneğin, yukarıdaki örnekte Debug.Log("Döngü adımı: " + i) ifadesinde [i] ifadesi, o anki döngü adımının değeri ile değiştirilir ve çıktıda sırayla Döngü adımı: 0, Döngü adımı: 1 gibi sonuçlar üretilir.

        Bu şekilde [i] ifadesi, döngü içindeki her adımın değeri ile değişen dinamik bir ifadedir."
        Bana verdiği cevap bu şekildeydi kodu da kendi oluşturdu.

      3. yasirkula Avatar

        Anladım. Gerçekten detaylı bir açıklama yapmış. Verdiği bilgiler teorik olarak tamamen doğru olmayabilir. Örneğin 1 numaralı maddede, i=0 için döngünün başlangıç değerini belirtir yazsa da, C# dilinde orada i yerine başka herhangi bir değişkeni de kullanabiliriz (döngüyle alakasız bir değişken bile olabilir), veya oraya hiçbir şey yazmayabiliriz de. Yani i=0 kısmı döngünün başlangıcında çalışır ama döngünün başlangıç değerini belirtmek zorunda değildir, orası döngüyle alakasız da olabilir boş da olabilir. [i] ifadesi de bir array’in i index’indeki elemana erişmeye yarar ama verdiği örnek kod da, açıklaması da array’lerden bağımsız olmuş ve haliyle sorunuzu tam cevaplayamamış. Bunlar belki Türkçe dilinde soru sormanın getirdiği kısıtlamalardır ama yine de yapay zekanın çok etkileyici bir geridönüş yaptığını kabul etmek lazım, takdire şayan.

      4. Emre BORAN Avatar
        Emre BORAN

        20 yıldan fazladır programcılıkla uğraşıyorum. Bu işte arastirarak yada deneme yanılma yoluyla birçok şey öğrendim. Ama öğrendiğim en önemli şey programcılıkla en önemli şeyin algoritma kurma yeteneği olduğudur. Eğer sağlam algoritma kurabilirseniz yapamayacağınız şey yok. Hiç bilmediğiniz bir dilde, hiç bilmediğiniz platformlarda çok kısa bir araştırma ile çok iyi şeyler üretebilirsiniz. Ama algoritma kuramazsaniz bir dilin tüm kodlarını ezberleseniz bile biryerde fena tıkanır kalirsiniz ve ne yaparsanız yapın çözüm bulamazsiniz. Bu nedenle şimdiye kadar ne kimseden bir algoritma için yardım istedim nede bir yapay zekadan faydalandım. Yazdığınız kod size ait değilse yaptığınız işte çok ilerleyemezsiniz. Sizlere tavsiyem bu işi yapacaksaniz algoritma kurmayı çok iyi öğrenin ve bu işte kendinizi çok iyi geliştirin. Yapay zekalara kod yazdirmaktan vazgeçin. Ancak o zaman yenilikçi daha önce yapılmamış sadece sizin hayal gücünüzle özelleştirilebilir uygulamalar geliştirebilirsiniz. Naçizane tavsiyem.

      5. cazzsaa Avatar
        cazzsaa

        valla yasir hocam sizin gibi açıklama yapabilecel düzeyde değilim açıkçası, ama işimi görüyor elhamdülillah genel anlamda.

      6. cazzsaa Avatar
        cazzsaa

        Emre Boran hocam, algoritma nedir bilemedim nasıl yapacağımı da bilmiyorum açıkçası. Peki siz algoritmayı hangi kaynaktan öğrendiniz. Çok çeşitli algoritmalar var hangisine bakacağımı şaşırdım açıkçası. Algoritmanın önemli olduğunu biliyordum da bu kadar önem arz ettiğini bilmiyordum. Bana yardımcı olabilir misiniz?

      7. Emre BORAN Avatar
        Emre BORAN

        Cazzsaa kardeşim algoritma programcılığın temel mantigidir. Neyi neden nasıl yaptığını anlamlandıran işlemler bütünüdür. Yapılması istenen şeyi bilgisayarın anlayabileceği şekilde adım adım işlemlere dökme diyebiliriz. Gözünüzü korkutmasın temeli basit bir islemdir yapılmak istenen şey karmasiklastikca algoritması da o derece zorlasmaya başlar.

        Örneğin yukarda yapay zekaya dongudeki i degiskenini sormussunuz size anlatmış ama bu işi yapacaksaniz asıl sormaniz gereken neden döngü kullandığımız olmalıydı. Neden birşeyleri döndürmek durumunda kalıyoruz. Bunu kavrasaniz zaten i degiskenini sormaniza bile gerek kalmayacak emin olun. İ değişkeni orda tamamen basit bir detaydan ibaret. İ gibi değişkenler kullanmadan da döngüler tasarlayabiliyoruz yeri geldiğinde. Onemli olan mantığını anlamak.

        Hiç unutmuyorum lisede hocamız algoritmanin ilk dersinde çay nasil demlenir diye sormuştu. Adım adım çay demlemenin sıralamasını yapmıştık. O zaman bana çok saçma gelmişti. Eminim şimdi sizede saçma gelmiştir ama algoritma denen şeyi cozunce hocanın neden ilk bunu sorduğunu çok iyi anlıyorsunuz.

        Algoritma öğrenmek için Google de programcılık için temel algoritma yazarsanız çok fazla doküman ve videolar var. Udemy de güzel ücretsiz derslerde var. Bu işi yapmaya niyetliyseniz bu şekilde başlamanızı tavsiye ederim.

      8. cazzsaa Avatar
        cazzsaa

        Emre Boran hocam ben hali hazırda algoritma bilmeden küçük çaplı bir oyun geliştirdim Unity ile. Çok zorlandım. Çok araştıma yaptım. Bilgisayarımın kaldırabildiği sınırda bir oyunu google play’e sundum. Yani programcılık işinin içine girdim de kayboldum diyebilirim. Bu algoritmayı daha önce de araştırmıştım. Verdiğiniz çay demleme örneği saçma gelmedi az çok bildiğimden güzel örnek ama bunu programlamaya dahil etme konusunda hiçbir fikrim yok. Verdiğiniz bilgiler ışında tekrardan araştırmalara koyulacağım Allah’ın izniyle teşekkür ederim. Merak ettiğim bir soru olduğunda size nereden ulaşabilirim?

      9. Emre BORAN Avatar
        Emre BORAN

        Buraya iletişim bilgilerimi yazmam ne kadar doğru olur bilemedim. Yasir hocama ayip etmiş olmayalım ama buraya bir soru sorulduğunda banada bildirim geliyor zaten takip ediyorum. Görürsek Yasir hocamı yormadan önce biz cevaplamaya çalışırız ins. Kolaylıklar dilerim.

      10. cazzsaa Avatar
        cazzsaa

        Doğru söylüyorsunuz, o zaman ben buraya yazmaya devam edeyim. Tekrardan teşekkür ederim yardımınız için.

      11. Sıddık Avatar
        Sıddık

        Hocam algoritma için draw io sitesini kullanıyordum da çalıştıramadığım için önerebileceğiniz bir başka bir internet sitesi veya uygulama var mıdır?

      12. yasirkula Avatar

        Biz de ara ara draw io kullanıyoruz. Bende açılıyor aslında site ama sanırım sizde başka bir sorun vardır. Şemalarla nerdeyse hiç çalışmadığım için alternatif siteler deneyimleme şansım olmadı.

      13. cazzsaa Avatar
        cazzsaa

        yok draw io sitesinde sıkıntı çıkmadı sadece başka bir yerde çalıştır butonu filan gördüm algoritma nasıl çalışıyor anlaşılıyor da ondan sordum. O çalıştırma mevzusuna gerek yok anlaşılan?

      14. yasirkula Avatar

        O özellik tanıdık gelmedi, ben muhtemelen hiç görmedim bile :] Draw io konusunda çok temel seviyede varsayabilirsiniz beni.

      15. cazzsaa Avatar
        cazzsaa

        hee anladım hocam tamamdır teşekkür ederim:)

      16. cazzsaa Avatar
        cazzsaa

        Hocam bir tane kaynaktan ” Kullanıcının girdiği iki sayının karelerinin toplamını görüntüleyen programın algoritma ve akış diyagramını çiziniz. ” sorusunu buldum. Bunun C# koduna yansımış hali olarak da “C# Kodu:
        using System;
        namespace dmg
        {
        class Program
        {
        static void Main(string[] args)
        {
        int sayi1, sayi2;
        int toplam = 0;
        Console.Write(“1.Sayıyı Giriniz = “);
        sayi1=Convert.ToInt32(Console.ReadLine());
        Console.Write(“2.Sayıyı Giriniz = “);
        sayi2=Convert.ToInt32(Console.ReadLine());
        toplam = (sayi1 * sayi1) + (sayi2 * sayi2);
        Console.Write(“Toplam = ” + toplam);
        Console.ReadLine();
        }
        }
        }

        Burada ” Convert.ToInt32(Console.ReadLine()); ” kodu kullanılıyor. Bu da int’a dönüştürmeye yarıyor tamam da ben bunu Unity içinde kullanırken bu şekilde int’a dönüştürme kodu yazmam gerekiyor mu?

      17. yasirkula Avatar

        string’i int’e çevirecekseniz, Unity fark etmeksizin Convert.ToInt32 kullanabilirsiniz. Unity’de doğrudan int döndüren bir fonksiyon varsa, orada tabi ki ToInt32 gerekmiyor. Float döndüren fonksiyonlarda da ya en yakın int’e yuvarlama yapabilir ya da direkt int’e çeviri yapabilirsiniz.

      18. cazzsaa Avatar
        cazzsaa

        anladım tamamdır teşekkür ederim hocam

      19. sıddık Avatar
        sıddık

        Hocam bir algoritma sorusu var hiç anlamadım. Yardımcı olur musunuz?
        Soru: X,Y pozitif olmak üzere, eğer x sayısının çarpanları toplamı y sayısına
        ve aynı zamanda y sayısının çarpanları toplamı x sayısına eşit ise bu
        sayılar dost sayılardır. Buna göre girilen iki sayının dost olup
        olmadığını bulan programın algoritma ve akış diyagramını çiziniz.

      20. cazzsaa Avatar
        cazzsaa

        Hayır hocam demek istediğim algoritmanın çözümüne dair nasıl bir yol izlebilirim? Nasıl çözebilirim?

      21. yasirkula Avatar

        Anladım. Esasında problem, sayının çarpanlarını bulmaktan geçiyor. Bu noktada da 1’den sayının yarısına kadar olan tüm sayıların üzerinden for ile geçip (i), sayının i’ye bölünüp bölünmediğine bakabilirsiniz. Bölünüyorsa, carpanlarinToplami isimli bir değişkene i’yi ekleyebilirsiniz.

      22. cazzsaa Avatar
        cazzsaa

        Anladım hocam çok güzel özetlediniz teşekkür ederim.

  14. Wolf Avatar
    Wolf

    2d helikopter oyunu yapıyorum. Helikoptere güç uyguladığımda yukarı çıkarken düzgün bir şekilde çıkıyor.
    Gücü kestiğimde direkt aşağıya düşüyor. Helikopterin yukarıdan aşağıya doğru süzülerek inmesini nasıl sağlarım.

    1. cihangir Avatar
      cihangir

      senin telif konusunda bir fikrim var.öncelikle telif yemeyeceğini söyleyebilirim.
      genel olarak kulanımına sunulan çeviri programlarındaki sesler telif konularına takılmaz.
      çok adı duyulan bir iş yaparsan dünya çapında bir iş yaparsan ve bu çeviri programının sesini kulanarak yaptığın anlaşılırsa (çevirideki sesler)
      yapmaz ama belki Google bir hak iddaa edebilir.
      bu youtube videonu etkilemez
      o yaptığın oyunu belki etkileyebilir. benim bildiğim bu.

      1. cihangir Avatar
        cihangir

        helikopter konusunda cevap vermemiştim üzgünüm.telif konusu ne alaka diceksiniz. bir hata oldu.sorduğun soruya cevap yaazmışım gibi göründü. düzeltmek istedim konu sorduğun soru ile alakası yok .cevabımıda geri silemedim. en azından bir açıklama yazmak istedim. bu arada umarım helikopter sorununu çözersin. ayrıca oyununu görmek isterim merak ettim nasıl bir oyun üzeerinde çalışıyorsun paylaşmak istersen buradan bir cevap yazabilirsin. mail adresim cihangircelik@hotmail.com

      2. yasirkula Avatar

        Ben de telifle ilgili yakın zamanda bir soru soruldu diye hatırlıyorum, ona cevap yazayım derken en son yoruma cevap yazdınız muhtemelen 😀 Paylaşımınız için teşekkürler.

    2. yasirkula Avatar

      Fizik kullanıyorsanız, FixedUpdate’te Rigidbody2D’nin velocity’sinin y değerini belli bir değerin altına düşürmemeye çalışabilirsiniz. Örneğin -10’un altına düşerse, y değerini elle -10’a sabitleyip tekrar velocity’e değer olarak verebilirsiniz.

      1. Wolf Avatar
        Wolf

        Velocity Y değerini verdim ama istediğim gibi olmadı. Başka bildiğiniz yöntem var mı?

        Rigidbody componentini kullanarak 2d nesneyi havada tutmaya çalışıyorum.
        2d nesne havaya kaldırıyorum. Gücü kestiğimde yere düşüyor. Havada kalmasını istiyorum bunu nasıl yapabilirim.

      2. yasirkula Avatar

        Rigidbody’nin Gravity Scale’ini 0 yapıp FixedUpdate’te elle de yerçekimi verebilirsiniz. Objenin velocity.y değeri 0’dan büyükse onu istediğiniz yerçekimi kadar miktar 0’a yaklaştırın (yapay yerçekimi), bu değeri 0’ın altına asla düşürmeyin.

  15. Emre BORAN Avatar
    Emre BORAN

    Merhabalar Hocam
    Unity de bir oyun tasarlıyorum. Uzun zamandır üzerinde çalışıyorum. Unity ede bu proje ile yeni basladim. Bu süreçte makalelerinizin çok büyük faydasını gördüm. Öncelikle bu konuda size çok teşekkür ederim. İyiki varsınız hocam.

    Bir konuda takıldım ve çözüm bulamadım size danışmak istedim.

    Oyunu bitirmek üzereyim. Şu an optimizasyon çalışmalarını yapıyorum. Bu konuda sizin optimizasyon önerilerinizin çok faydasını gördüm. Fakat bir noktada kararsız kaldım. Oyunumda doğru cevap verildikce bir listede doğru cevapları listeliyo. Kimin doğru cevap vermiş olduğu belli olsun diye de her oyuncunun bir rengi var ve doğru cevap o oyuncunun rengi ile listeleniyo. Bu nedenle her doğru cevap için ayrı bir textmesh kullanmak zorunda kaldım. Şu an listede her doğru cevap için instantin ile yeni bir textmesh oluşturuyorum. Her oyunda ortalama 80-100 arası doğru cevap veriliyor. Sizce her doğru için yeni bir instantin ile text üretmek yerine oyun sahnesine 100 tane text atsam her doğruda bunlardan birini aktif edip konumlandirsam performans açısından bana birşey kazandırır mi ? Yada oyun sahnesini bunun için komple değiştirmeye gitmeme değecek kadar performansa etkili olurmu? Bu konuda bana ne önerirsiniz ? Şimdiden teşekkürler.

    1. yasirkula Avatar

      Ben dediğiniz pooling optimizasyonunu bu senaryoda uygulardım. Garbage Collector’un daha az sıklıkla çalışmasına kesinlikle yardımcı olur. 100 Text’i sahneye vermenize gerek yok, oyunun başında kod ile Instantiate edip kapatabilirsiniz. Bu arada pool için Unity’nin kendi ObjectPool class’ını kullanabilirsiniz: https://docs.unity3d.com/ScriptReference/Pool.ObjectPool_1.html

      1. Emre BORAN Avatar
        Emre BORAN

        Değerli cevabınız için teşekkürler hocam yalniz ben object pooling konusundaki makalenizi okumuştum. Benim oyunda instantin edilen her obje oyun sonuna kadar sahnede kaliyo hiç destroy olmuyo. Bu durumda sanırım object pooling sistemi bana pek uymaz gibi geliyo yanlış mı düşünüyorum

      2. yasirkula Avatar

        Pool edilen objeleri DontDestroyOnLoad edilmiş bir parent altında toplarsanız, sahne geçişlerinde de bu objeler korunur. Bu durumda sahne geçişlerinde tekrar Instantiate yapmanız gerekmez.

      3. yasirkula Avatar

        Eğer dersteki senaryonun sizin için de geçerli olduğunu düşünüyorsanız, bu yöntem daha iyi haklısınız.

      4. Emre BORAN Avatar
        Emre BORAN

        Oyunum tek sahne zaten hocam o yüzden tekrar destroy ve instantinlik bir durum kalmiyo. Son attığım makaleniz üzerinden gidiyorum şuan. Benim hikayeye tam uygun olmasa da onu uydurmaya çalışıyorum sanırım en verimlisi o olacak.

        Sizce hiç ellemesem tek sahnede 100 adet instantin çok yük yuklermi sisteme. 100 instantin için bu şekilde yeniden bir dizayn yapmama degiyormudur ? Ben açıkçası şu an sistemde bir kasma takılma hissetmiyorum ama bunun başka telefonlarda başka şartlarda nasıl sonuç verecegini tam olarak test edemedigimden eminde olamiyorum.

      5. yasirkula Avatar

        Bu objeler tek tek Instantiate oluyorsa (yani hepsi bir anda değil), takılma yaşamamalısınız. Hiç Destroy da yapmadığınız için, bu durumda bu sayı 100 civarının çok üzerine çıkmadığı sürece herhangi bir optimizasyon yapmamanız da bence makul.

      6. Emre BORAN Avatar
        Emre BORAN

        Destekleriniz için çok teşekkür ederim hocam. Hayırlı günler dilerim.

  16. Mustafa Avatar
    Mustafa

    Merhaba yasir hocam bayadır soru soramıyordum sınavlar falan vardı onlarla uğraştım.Umarım sizde iyisinizdir sağlığınız sıhhatiniz iyidir.Şuanda online bir oyun yazıyorum.Serverim hazır şimdi bu serverdeki veritabanında insert,delete,select,update gibi işlemleri yapıcam.Bunun için apı yazmam gerektiğini söyledi chatgpt illaki apı mı yazmam gerekiyor direk unity aracılığıyla bir şeyler yapamaz mıyım (unity’nin kütüphaneleri vs)? Yapıcağım işlemlerde şunlar; Unity’de ilk başta bir kayıt kısmı olucak kullanıcıyı veritabanına kaydedicez sonra oyuncunun hesaba girişinde veritabanından select işlemi yapıcaz.Sonra oyun içerisindeki değişiklikler de update olucak.

    1. yasirkula Avatar

      Bilmediğim bir noktadan sordunuz maalesef, umarım internette doyurucu bir cevap bulabilirsiniz. Oyununuzda şimdiden başarılar dilerim.

  17. wolf Avatar
    wolf

    Failed to import package with error: Couldn’t decompress package

    paketi yüklemeye çalıştığım zaman bu hatayı alıyorum.
    paketin içinde yapmış olduğum proje var projeye devam etmek istiyorum bu hatanın yüzünden devam edemiyorum diğer unity sürümlerini denedim yine olmuyor.
    bu sorunu neden oluyor?

    1. yasirkula Avatar

      Eğer hatada başka detay yazmıyorsa ve google yardımcı olmadıysa, şu plugini deneyebilirsiniz: https://yasirkula.com/2020/09/17/unity-cerez-ders-unitypackagelari-ayiklamak-unzip-yapmak/. Aklıma başka çözüm maalesef gelmiyor.

      1. wolf Avatar
        wolf

        çözümünüzü denedim olmuyor teşekkür ederim.

    2. cihangir Avatar
      cihangir

      ne yüklemeye çalışıyorsun unity yüklemede sorun olduğunu anlıyorum. sanırım paket açılırken sorun oluşmuş. yardım etmek isterim elimden geldiğince

    3. cihangir Avatar
      cihangir

      eğer içe aktarmak ile ilgiliyse şu video sana yardım edebilir. ama farklı bir şey ise detaylı bir açıklama yaparmısın
      https://www.youtube.com/watch?v=FbysQwBghpA

      1. wolf Avatar
        wolf

        bu videoyu daha önce izlemiştim ama bu videoda bana yardımcı olamadı.
        teşekkür ederim yardımın için.

  18. ecrinarslan Avatar

    kolay gelsin ben basit bir beyaz kutu yapmak istiyorum fakat duvara doğru gelindiğinde yuvarlak birsey gelsin ona tıkladığımdada bir menü gibi birsey çıksın istiyorum örneğin tablo tak ,duvarı boya gibi yani bir nevi evi dekorasyon etsin istiyorum ve bu vr ile olacak nasıl yapabilirim video falan varmıdır önereceğiniz.

    1. yasirkula Avatar

      Bana karmaşık bir sistem gibi geldi, daha önce doğrudan böyle bir tecrübem olmadığı için tüyolar veremiyorum. Asset Store’da bina inşa etmekle ilgili bazı asset’ler var, onları incelemek isteyebilirsiniz. Belki YouTube’da da dersler bulabilirsiniz.

      1. ecrinarslan Avatar

        YouTube’de çok araştırma yaptım ama aradığım bir şey bulamadım malesef. Aslında karakter duvara tıklayacak tablo as yeri gelecek ve tablo gelecek ben biraz detaylı anlatayım dedin yukarda.

      2. yasirkula Avatar

        Tıklama eylemi gerçekleşince tıklanan noktaya raycast atıp duvara çarpıyor mu diye bakmanız gerekiyor gibime geliyor. Belki duvarlarda ayrı bir Tag veya isim kullanarak bunu ayırt edebilirsiniz. Duvara çarpıyorsa, orada bir World Space Canvas oluşturup içinde Tablo as menüsünü gösterebilirsiniz. Tablo asmayı seçince de duvarda tıklanan yere tabloyu Instantiate ile asabilirsiniz. Raycast’in çarptığı yerde bir şey Instantiate etmek için şu ders faydalı olabilir: https://www.youtube.com/watch?v=lFmKZskl45I

  19. Eren ALKAN Avatar

    Hocam Odin Inspector hakkında bir yazınızı bekliyorum. Ayrıca sizi youtubeda da görmek isteriz hocam.

    1. yasirkula Avatar

      Asset’e yıllardır sahibim ama henüz hiç kullanmadığım için önce bi kendim öğrenmeliyim 🙂 Yalnız yıllardır süregelen geleneğimin uzun bir süre daha devam etmesinden korkuyorum.

  20. Mustafa Avatar
    Mustafa

    Merhaba yasir hocam.Ben unity’de ray gönderirken bir sorun yaşıyorum.Işınım çarpmasını istediğim karakterinin colliderı’nın dışındaysa ray’de sorun yok.Ama colliderı’nın içerisindeyse ray çarpmıyor.
    https://www.youtube.com/watch?v=tFLbr_s224s
    Yukarıdaki linkteki video’da sorunu anlatmaya çalıştım hocam.

    1. yasirkula Avatar

      “Queries Hit Backfaces” sadece Mesh Collider’lar için geçerli diye okudum. Aksi olsa bile, raycast ışınınızın uzunluğu Box Collider’ın genişliğinden kısa olduğu için, ışın Box Collider’ın ne sol kenarına ne de sağ kenarına çarpıyor o yüzden her halükarda bu property işe yaramazdı gibime geliyor. Benim önerim Raycast yerine Physics.OverlapBox kullanmayı denemeniz yönünde. Genişliği attığınız raycast’in uzunluğu kadar olan, 0 yükseklik ve derinlik ebatlarına sahip bir dikdörtgenler prizması ile fonksiyonu çağırabilirsiniz.

      1. Mustafa Avatar
        Mustafa

        Hocam bir takım nedenlerden dolayı attığınız kodu deneyememiştim.Bugün deneme fırsatım oldu verdiğiniz kodu koduma uyarladım.Sorun çözüldü yine nokta atışı yaptınız çok teşekkürler :))

  21. melih Avatar
    melih

    Hocam Android için 3d parkur oyunu yaptım ama ilerleme butonuna basarken ikinci parmağımı ekrana dokunduğumda ekran ikinci parmağıma doğru kayıyor nasıl düzeltebilirim

    1. yasirkula Avatar

      Input.mousePosition kullanırsanız o ekrandaki tüm parmakların ortalama pozisyonunu döndürüyor. Öncelikle “Input.multiTouchEnabled = false;” yapmayı deneyebilirsiniz. İşe yaramazsa, Input.touchCount ve Input.GetTouch vasıtasıyla dokunmatik ekrandaki parmaklar üzerinden elle geçerek tam kontrol sahibi olabilirsiniz. Alternatif olarak, EventSystem’dan faydalanan input sistemi yazabilirseniz, o zaman sisteminiz otomatik olarak multi-touch destekler.

  22. Mehmet Sönmez Avatar

    Merhabalar,
    Yıllar sonra aklıma isminiz geldiği için bir teşekkür mesajı yazmak istedim.
    Ergenlik dönemlerimde -2015 yılları civarı- Oyun geliştirmeye merak saldığımda en büyük yazılı kaynağım sizin yazılarınızdı, bana o zamanlar çok yardımcı olmuştunuz.
    Kısıtlı internet imkanlarım ile Youtube üzerinden bir şeyler öğrenmem çok zor olduğu için size olan minnet borcum büyüktür.
    Sağlık ve sıhhatle kalmanız dileğiyle… Teşekkürler.

    1. yasirkula Avatar

      Faydalı olabildiysem ne mutlu bana 🙂 Ben de mesajınız için teşekkür ederim.

  23. Saltuk Bs Avatar
    Saltuk Bs

    Hocam Önceki cevaplarınız icin teşekkür ederim, bi sorum admob ile ilgili aslında herşeyi yaptım problem yok ama çok basit bir olayı çözemedimi oda şu , örneğin butona bastığımda ben oyunu tekrar oynamasını sağlıyorum, bunu sağlarkende oyunun sahnesini tekrar çağırtıyorum ki , oyuna sıfırdan başlayabilsin diye, fakat bu aynı butona birde geçiş reklamı ekledim , kodumdan sahne yüklemeyi iptal edersem reklamım çok güzel görünyor , fakat sahneyi yüklemeye çalıştığı zaman reklamım 1 sn görünüyor sonra otomatikmen sahneyi yenilediği için reklamım kalıcı olmuyor ve kayboluyor, kodun neresini değiştirirsem değiştireyim çözemedim yani kısacası reklamdan hemen sonra sahne değişikliği yaptığım için reklamım kısacık görünüyor bu sorunu nasıl çözebilirim hocam

    1. yasirkula Avatar

      Bu reklam ya standard bir interstitial değil diye anlıyorum ya da OnDestroy fonksiyonunda reklamı Destroy ile yok ediyorsunuz. Sahneler arası geçişlerde yok olmayan singleton bir reklam scripti kullanırsanız o zaman bu sorun çözülebilir. Örnek bir scripti AdMob dersimde bulabilirsiniz, veya: https://yasirkula.com/2014/08/03/unityde-bir-objenin-sahneler-arasi-gecislerde-yok-olmasini-onlemek-singleton-prensibi

      1. Saltuk bs Avatar
        Saltuk bs

        Hayır hocam aslında bildiğimiz instertitial teklam aslında, bundan önceki projemde aynı kodları kullanmıştım hiç bir sorun yoktu ama bu sefer kayboluyor reklamın hemde sahne geçişini bile geçtim o anda yeni bir panel açmak istesem bile reklamın ardına hemen paneli açtığı için reklam yine kayboluyor başka bir yöntem ne olabilir hocam bildiğimiz instertitial çünkü

      2. yasirkula Avatar

        Dediğim Destroy etme senaryosu sizde geçerli değilse o zaman maalesef ben de ilk defa böyle bir şey duyuyorum :/ Bu sorunun editörde değil gerçek cihazda olduğunu varsayıyorum, editörde böyle şeyler olabilir.

  24. Mustafa Avatar
    Mustafa

    Hocam unity’de bir sorun yaşadım. Bir türlü çözemiyorum yardımcı olabilir misiniz?

    1. yasirkula Avatar

      Bu konuyla ilgili internette gördüğüm çözümler şu şekilde:

      – Unity Hub hesabınızdan çıkış yapıp Unity ile alakalı her şeyi Görev Yöneticisi’nden kapatın ve Unity Hub’ı tekrar açıp giriş yapın
      – Unity Hub’ı yönetici olarak çalıştırın
      – VPN’e bağlıysanız bağlantıyı kesin
      – Installs Location’ı “C:\Program Files\Unity2019″dan “C:\Program Files”a çekin veya Unity2019 klasörünün izinlerinden o klasöre yazma ve okuma izinleri verin

      Eğer hiçbiri işe yaramazsa, şuradan elle istediğiniz sürümü indirebilirsiniz: https://unity.com/releases/editor/archive

      1. Mustafa Avatar
        Mustafa

        Unity editörü indirdim dediğiniz gibi yazma ve okuma izni verdim.Unity hub’u yönetici olarak çalıştırdım tüm problem çözüldü.Teşekkürler yasir hocam.

  25. Mehmet Avatar
    Mehmet

    Merhaba hocam, uzun zamandır bir oyun üzerinde çalışıyordum. Sonunda bitirdim ve google play üzerinde sunacağım. Fakat yaptığım oyuna benzer oyunlar var. Bunları geçmek için nasıl reklam vermeliyim veya seo yapmalıyım? Yardımcı olur musunuz?

    1. yasirkula Avatar

      Maalesef bunlar bilgim dışında kalan konular. Oyununuzda çok güzel başarılar dilerim.

  26. Mustafa Avatar
    Mustafa

    Merhaba hocam ben github için bir proje geliştirmeye karar verdim.Projeyi geliştirmeye bugün başladım şimdi assetler topladım sağdan soldan onları birleştirdim.Bulduğum assetler free asset ama atıf istiyor.Ben bunun için atıfta bulunmama gerek varmı?Ben bunu ticari bir projede kullanmıyorum ya sonuçta sıkıntı yaşar mıyım acaba ?

    1. yasirkula Avatar

      Bence atıf yapmanızda hiçbir sakınca yok, hatta yapın ki hem yasal olarak doğru yolu izlemiş olursunuz hem de GitHub’ınıza giren bir kişi, lisanslara dikkat ettiğinizi görür ve bence bu size olumlu olarak yansır.

  27. Saltuk Bs Avatar
    Saltuk Bs

    Hocam bu her telefon yada tablet ekranı için çözünürlük problemini bir türlü çözemedim internette ne kadar bilgi varsa hepsini deniyorum, ama ayar çektiğim textim yada butonum çözünürlüğü değiştirdiğimde kayma yaşıyıyorum ekranın dışına çıkmasa dahi ekranda ne var ne yok kayıyor ve görüntü bozulmuş oluyor bunun ayarlanması için kesin bir yol yok mudur, şunu yaparsan sorun çözülür diyeceğin bir video yada sizin bir eğitiminiz varmı bunun için?

    1. yasirkula Avatar

      Ben Canvas Scaler component’inin Scale Mode’unu “Scale With Screen Size” yapıp oradaki Width-Height slider’ının değerini de komple Height yapıyorum. Böyle yapınca, UI elemanlarını dikey eksende ekranın neresine koyarsam koyayım aynı yerde kalıyorlar. Yatay eksende de aslında aynı yerde kalıyorlar ama ekran en/boy oranına göre kenarlara olan uzaklıkları değişiyor. Ekranın hep solunda kalmasını istediğiniz bir şey için, Anchor Min Max X değerlerini 0 yaparsanız bu sorun da çözülür. Bu iki yöntem hemen hemen her senaryoyu çözmeye yetiyor.

  28. Saltuk Bs Avatar
    Saltuk Bs

    Hocam kolay gelsin, bir sorum olacaktı cok basit bir işlem olabilir ama inanın 2 gündür buna uğraşıyorum elimde 2d yaptığım bir oyunum var oyunumda görsellik katması acısından siyah arka plan üzerinden değişiklik yapark objeleri lightin sayesinde görünür hale getirdim yani anlayacağınız bol bol light kullandım, oyunumu unitynin kendi içerisinde çalıştırdığım zaman bu ışıklar görünürken android apk alıp telefonumda açtığımda ışıklar görünmüyor yani ışığın yansıyıp aydınlatması hiç bir şekilde görünmüyor ışıkları resmen yok sayıyor internette ingilzice bir kaç yerde bu hatayı gördüm fakat hic düzgün bir cevap bulamadım, sizin bir bilginiz varmı hocam bu apk aldığımda lightingler neden görünmüyor

    1. yasirkula Avatar

      Belki Edit-Project Settings-Quality’de Android’in kalite ayarını Ultra yapmak çözer. Çok fazla ışıkla Forward yerine Deferred ışıklandırma kullanıyorsanız belki mobil cihazınız bunu desteklemiyordur. 2D oyunda ışık kullanacaksanız, URP’nin 2D ışıklandırma sistemini kullanmanızı öneririm. Aklıma başka bir şey gelmedi malesef. İsterseniz logcat’te hata olup olmadığına da bakabilirsiniz.

      1. Saltuk Bs Avatar
        Saltuk Bs

        hocam cevabın icin teşekkür ederim sorunu kendim şu şekilde çözdüm sıkıntı yaşayan varsa anlatayım;
        light özelliklerinden bir global artı birde diğer ışıktan aynı şekilde ikitane kullanılırsa problem yaratıyor muş globalı sildim tekrar buidl aldım sorun çözdüldü tüm ışıklar görünür hale geldi

  29. Mustafa Avatar
    Mustafa

    Hocam mobil oyun geliştiriyorum.Dönen debugları test etmem lazım.Unity arayüzünden telefonumu açabilmem lazım nasıl yapabilirim.Unity Remote varmış daha öncesinde ama artık desteklenmiyor.

      1. Mustafa Avatar
        Mustafa

        Teşekkürler yasir hocam 🙂

  30. Alperen Avatar
    Alperen

    Unity 3D ile oyun yaptım. Ve oyunuma reklam birimleri eklemek istiyorum. Şimdi merak ettiğim konu, diyelim ki unity monetize ile 2 tane reklam firmasını seçtim. Unity nin kendi reklam birimleri ve ironsource reklam birimleri. Benim oyunuma unity reklam birimleri için sdk ve ironsource reklam birimleri için sdk larının 2 sinide eklemem gerekiyor mu? Yoksa unity monetize içinde otomatik ironsource a bağlanıp reklamı çekiyor mu? Veya bunun haricinde daha verimli bir firma var mı?(reklamları otomatik bir çok platformdan çeken).Popüler oyun yayıncıları, reklam birimleri için hangi firmayı tercih ediyor?

    1. yasirkula Avatar

      Birden çok reklam firmasıyla çalışmak için bir mediation sistemi kullanabilirsiniz. Örneğin ironSource’da bu özellik var, hem kendi reklamını hem Unity Ads reklamlarını beraber desteklemenize yarıyor ve kendi dokümanları vasıtasıyla, iki servisin entegrasyonunu nasıl yapacağınızı anlatıyor. Gerçi bir süre önce Unity ironSource’u satın aldı diye hatırlıyorum o yüzden belki ikisi artık aynı SDK’i kullanıyordur. Benim önerebileceğim bir reklam firması yok çünkü sektörü bilmiyorum.

  31. Mustafa Avatar
    Mustafa

    Merhaba yasir hocam öncelikle hayırlı ramazanlar dilerim.Unityde bir sorun yaşıyorum.Canvas objelerini her platforma uygun bir şekilde sabitleyebiliyoruz.Sprite,effect gibi objeleri nasıl sabitleriz.

    1. yasirkula Avatar

      Hayırlı ramazanlar. Onlarda anchor veya Canvas Scaler yok haklısınız. Anchor’un bence en yakın karşılığı, kameranın ViewportToWorldPoint fonksiyonunun döndürdüğü noktayı referans alarak sprite’ı konumlandırmak olur. Canvas Scaler’ın karşılığı olarak ise kameranın Orthographic Size değeriyle oynamayı deneyebilirsiniz.

  32. Saltuk Buğra Avatar
    Saltuk Buğra

    Yasir hocam kolay gelsin benim bir sorum var çokça araştırtım fakat tam istediğim bişi bulamadım, aslında benim istediğim unity 2d oyunum için parallax efekt ama şimdi paralax deyince basit sürekli aynı görsellerin döndüğü parallaxı kastedmiyorum, yapmaya istediğim ama bulamadığım olay tam olarak eski nokia telefonlardaki city bloxx oyununda evleri dizdikce şehir fotoğrafından başlıyor sonra gökdelenler ardından uçaklar vs derken ay mars … vs şeklinde biz yükseldikce arka plandaki bu saydığım şeyler tek tek geçiyor, bilmiyorum belkide parallax bile değildir bu dediğim ama nasıl yapacağımın mantığını bir türlü oturtamadım kafamda eğer aydınlatabilirseniz şu şekilde yapabilirsiniz diye çok sevinirim..saygılar

    1. yasirkula Avatar

      Arkaplandaki uçak ve yıldız gibi objeler bence bulunduğumuz yüksekliğe göre rastgele spawn olup biz yükseldikçe aşağı doğru kayıveriyorlardır, onlarda karmaşık bir sistem olduğunu sanmıyorum. Arkaplanın renginin maviden siyaha geçmesi nasıl olabilir diye düşündüğümde, örneğin kameranın Background Color değerini yüksekliğe göre değiştiriyor olabilirler. Gradient bir renk geçişi varsa, belki özel bir Skybox shader’ı kullanılarak çözülebilir (örnek: https://github.com/keijiro/UnitySkyboxShaders). Veya renk geçişinin olduğu yükseklikte gradient bir sprite/texture kullanılabilir.

  33. Ali Uygun Avatar
    Ali Uygun

    Kolay gelsin hocam. Ben projemde sqlite veritabanı kullanıyorum unity scene ekranında database çalışıyor ancak apk alıp telefona yükleyince telefonda database çalışmıyor bunun hakkında bir fikriniz var mı acaba

    1. yasirkula Avatar

      Bu konuda bilgim yok ama logcat kullanarak hata mesajı alıp almadığınızı kontrol etmenizi öneririm: https://yasirkula.com/2015/10/13/unity-android-oyunlarinizi-debug-etmek/

  34. Ferhan Avatar
    Ferhan

    Hocam merhaba, öncelikle sağladığınız kaynaklar için çok teşekkürler. Optimizasyon rehberinizi uzun süredir inceliyorum ve optimizasyon konusunda kısmen takıntılı hâle geldim. Acaba mobil oyunlar için URP’de kullanabileceğimiz en performanslı shader hangisidir? Şu ana kadar URP Lit veya Flatkit kullanıyordum ancak yazılarınızdan birinde Toony Colors Pro 2’den bahsettiğinizi gördüm ve bu kütüphaneyi çok beğendim. Toony Colors ile oluşturduğumuz shaderlar performans açısından URP Lit’ten iyi olabilir mi? Eğer değil ise su, cam gibi özel materyaller için hangi shaderları önerirsiniz?

    1. yasirkula Avatar

      Benim tahminimce Toony Colors Pro 2 shader’ı Lit shader’dan hızlıdır ama Simple Lit shader’dan yavaştır. Işık ve gölge etkileşimi olan bir shader istiyorsanız, Simple Lit tahminimce bulabileceğiniz en hızlı shader’lardan birisi olur. Su ve cam gibi materyaller için kullanılabilecek özel shader’ları çok inceleme fırsatım olmadı. Bazı projelerde şirketin satın aldığı bu tarz shader’ları kullandık ama başka benzer shader’lara göre ne kadar performanslı şeklinde kıyaslama yapma şansım maalesef olmadı. Bence aklınızda birkaç hazır shader varsa, Reddit veya Unity forumlarında bunlardan hangisinin daha performanslı olduğunu sorabilirsiniz.

      1. Ferhan Avatar
        Ferhan

        Peki Matcap veya Shader Graphların performansları nasıl mobilde onun hakkında bilginiz var mı? Matcap hiç denemedim ama bir kez shader graph kullandığımda performansı kötüydü diye hatırlıyorum. Shader graph’ın kodlanmış shader ile aynı hızda çalışması gerekiyor mantıken değil mi?

      2. yasirkula Avatar

        Shader Graph’ın ışık alan shader’ları Lit shader kullanıyor, Simple Lit shader oluşturmak için şunun gibi eklentiler kurabilirsiniz. Matcap’ın performansı ışık alan shader’a göre daha iyi olur, Simple Lit’ten de daha iyi olabilir. Görüntüsü de bazen diğerlerinden daha iyi oluyor yalan olmasın, kendim ihtiyaç halinde kullanıyorum. Ancak Matcap sahnedeki ışığın şiddetinden veya ışık olup olmamasından etkilenmez bilginiz olsun. Shader Graph elle yazılan shader’la aynı mı olur derseniz, elle yazınca ince optimizasyonlar yapabilirsiniz belki. Kabaca shader yazacaksanız aynı olur bence.

      3. Ferhan Avatar
        Ferhan

        Anladım. En temiz yol shader kodlamayı ucundan bilip kendi basit shaderlarımızı kodlamak gibi görünüyor. Çok teşekkür ederim hocam.

  35. burak Avatar
    burak

    public bool reklamgosterildi = false;
    private InterstitialAd interstital;

    public void Start()
    {
    MobileAds.Initialize(InitializationStatus => { });
    this.RequestInterstitial();
    reklamshow();
    }

    void RequestInterstitial()
    {
    string reklamid = “REKLAM ID”;

    this.interstital = new InterstitialAd(reklamid);
    AdRequest request = new AdRequest.Builder().Build();
    this.interstital.LoadAd(request);
    }

    void reklamshow()
    {
    if (reklamgosterildi == false)
    {
    if (this.interstital.IsLoaded())
    {
    this.interstital.Show();
    reklamgosterildi = true;
    }
    }
    }

    Hocam oyunuma geçiş reklam kodları ekledim ve play store üzerinden güncelleme attım fakat geçiş reklamı çıkmıyor . Admob üzerinden reklam isteği geliyor ve eşleşiyor da fakat gösterim sıfır. Yukarıya kodlarımı ekledim herhangi bir hata mı yapıyorum ne yapmam gerekiyor ?

    1. yasirkula Avatar

      reklamshow fonksiyonunu RequestInterstitial’ın hemen akabinde çağırdığınız için, reklamın henüz sunucudan indirilmek için yeterince vakti olmamıştır. AdMob dersimde bunun için coroutine kullanmıştım, örneğin onu deneyebilirsiniz.

  36. burak Avatar
    burak

    Hocam merhabalar, ben uygulamama banner ve interstital reklam koydum ve unity simulatorunde bunlar gözüküyor fakat apk alıp telefonumda denediğim zaman gözükmediler. Bende play store da yayınladım uygulamayı hata aynı şekilde devam ediyor. Kodları https://developers.google.com/admob/unity/banner?hl=tr bu siteden alarak eksiksiz bir şekilde yaptım. Sorunu nasıl çözebilirim ?

    1. yasirkula Avatar

      AdMob dersimi artık desteklemiyorum, maalesef aklıma bir fikir gelmiyor. Logcat’e bakarak bir şeyler bulabilir misiniz bakmanızı öneririm.

  37. Mustafa Avatar
    Mustafa

    Hocam canvas ile alakalı bir sorun yaşadım ben buna benzer bir sorunu daha öncede yaşamıştım ama video çekmediğim için konuyla alakalı size sorduğumda derdimi anlatamamıştım şimdi aklıma video çekip göstermek geldi.https://www.youtube.com/watch?v=12qs4ggbJZM&ab_channel=mustafay%C4%B1ld%C4%B1r%C4%B1m
    burada sorun baya garip geldi internetten de nasıl aratıcağımı bulamadım buna yapabileceğim bir çözüm yok mu?

    1. yasirkula Avatar

      Attığınız videoda emülatörde 8×8 dama tahtasının tamamını görebiliyordum. Dama tahtası kare olduğu için, dikdörtgen ekranda yanlarda boşluk olması bana normal geldi. Siz o ekranda nasıl gözükmesini istiyorsunuz?

      1. Mustafa Avatar
        Mustafa

        Boşluk olmasın istiyorum hocam yanlar gözükmesin

      2. yasirkula Avatar

        Ama cihaz dikdörtgen, cihaz 1024×800 piksel ise ve dama tahtası 800×800 piksel ise, yanlarda 224 piksellik bir boşluk illa ki kalıyor. Oranın siyah gözükmesini istiyorsanız, oraya siyah renkli bir Image objesini arkaplan olarak verebilirsiniz. Ekranın belli kısmının devre dışı bırakılması mümkünse nasıldır onu ben maalesef bilmiyorum.

      3. Mustafa Avatar
        Mustafa

        Ama hocam bi oyunu yaparken tek bir çözünürlüğe göre yapmıyolarmı?
        Mesela 1920*1080 de yaptıkları zaman biz bunu her çözünürlükte aynı şekilde görmüyor muyuz?Şuanda belki pek mantıklı şeyler yazmıyor olabilirim kusura bakmayın bilgim olmadığı için öğrenmek istediğim için soruyorum.

      4. yasirkula Avatar

        UI elemanlarını anchor’layarak (mesela sağlık barını ekranın sol üst kenarına) farklı çözünürlükleri destekliyorlardır bence. Profesyonel anlamda arayüz tasarımım olmadı diyebilirim o yüzden yanlış da biliyor olabilirim. Ben en azından Canvas Scaler ve anchor’lar kullanarak mobil ekranlara arayüz tasarımı yapıyorum. Arayüzü hem iPhone hem iPad çözünürlüğünde kontrol ediyorum.

      5. Mustafa Avatar
        Mustafa

        Hocam değerli yorumunuz için teşekkür ederim.Sizde olmasanız sorunlarımıza çözüp bulamayacağız iyiki varsınız.

  38. Furkan Avatar
    Furkan

    Merbaba hocam. Nasılsınız? Oyunu buill aldıktan sonra çözünürlük değişiyor. Objeler büyüyor sanki. Çözüm öneriniz var mı? Oyun 3D. Önceden teşekkürler.

    1. yasirkula Avatar

      Merhaba, Elhamdülillah teşekkür ederim. Bunlar UI objeleri ise, Canvas Scaler’ın ayarını Constant Pixel Size harici bir ayar yapmayı deneyebilirsiniz (ben Scale With Screen Size yapıp Match Width or Height değerini de 1 yapıyorum).

      1. Furkan Avatar
        Furkan

        Hayır hocam UI objeler değil.Gameobject’ler büyüyor

      2. yasirkula Avatar

        Objelerin ekranda dikey anlamda kapladığı alan hiç değişmemeli. Editörde örneğin ekranın yüksekliğinin %50’sini kaplayan bir obje, her türlü cihazda da ekranın yüksekliğinin tam olarak %50’sini kaplıyor olmalı. Kameranın Field of View’ını kodla değiştiriyorsanız veya kamera ayarlarıyla oynayan bir eklenti kullanıyorsanız o zaman bir şey diyemiyorum.

      3. Furkan Avatar
        Furkan

        Hayır hocam hiç bir şeyi değiştirmedim.Kameranın Field of View’ını kodla sabitlesem mi diye düşünüyorum aslında.Ama sonradan ne gibi sorunlar çıkar bilmiyorum.

      4. yasirkula Avatar

        Field of View’a dışarıdan elle müdahale edilmediği sürece o değer sabit kalır, sabit kalmıyorsa bir eklenti onu elliyordur.

  39. Mustafa Avatar
    Mustafa

    Yasir hocam UI imageleri dışarıdan projeme dahil etmiş olduğum spriteları attığımda onun şeklini alıyor ama kendim 2D bir obje oluşturup onu attığımda onun şeklini almıyor bunun çözümü nedir?

    1. yasirkula Avatar

      Daha önce karşılaştığım bir şeye benzemedi. Resimler üzerinden belki sorunu daha rahat görebilirim.

      1. Mustafa Avatar
        Mustafa

        Problemi videoda anlattım hocam
        https://www.youtube.com/watch?v=tL7QaKOHalg

      2. yasirkula Avatar

        Assets-Create-Sprites menüsündeki assetler özel assetler, onlar direkt resim dosyası olmadıkları için Image’da çalışmıyorlar. Dilerseniz Image’ın Use Sprite Mesh seçeneğini açıp deneyin. Eğer işe yaramazsa, Image’da sadece resim dosyaları kullanabilirsiniz demektir.

  40. Mustafa Avatar
    Mustafa

    Yasir hocam oyunumun sahne çözünürlük özelliklerini kodla nasıl değiştirebilirim?İstediğim şey oyunun bir kısmında 1920×1080 portrait çözünürlüğünde olsun sonraki sahnede 1920×1080 landscape olsun bunu kodla nasıl değiştirebilirim?

    1. yasirkula Avatar

      Bu bir mobil oyunsa, Screen.orientation ile portrait ile landscape arası geçiş yapabilirsiniz. Aksi taktirde Screen.SetResolution fonksiyonunu kullanabilirsiniz.

  41. Mustafa Avatar
    Mustafa

    Yasir hocam ses efektleri vs yapabilmek için fl studio programını indirdim.Program o kadar karmaşık ve zorki anlatamam.Her bir düğmenin özelliği var.Nasıl böyle bir uygulama yapmışlar anlıyamadım gerçekten çok emek vermişler.Oyun sesleri yapabilmem için önerdiğiniz site ve program varmı hocam?
    Youtube içerik stüdyosunda https://studio.youtube.com/channel/UCiBXy6f-naejWhn8PWsEyCQ/music oyunlarda kullanılabilecek ses ve müzikler var.

    1. yasirkula Avatar

      Sesler konusunda ben tamamen çömez sayılırım, maalesef kendi sesinizi yapmak için benim bir önerim yok. Ben Asset Store’daki ses asset’lerini ve internetteki ücretsiz ses efekti sitelerini kullanıyorum.

  42. wolf Avatar
    wolf

    hinge joint 2d kullanarak köprü yaptım . ağır cisimler bu köprüden geçerken aşağıya düşüyor. hafif cisimler düşmüyor. ağır cisimlerin düşmemesini nasıl yapabilirim.

    1. yasirkula Avatar

      Joint’lerle çok fazla çalışmadım yalan olmasın. Yaşadığınız sıkıntı bana tanıdık gelmediği için maalesef yorum yapamıyorum.

  43. Gökmen Avatar
    Gökmen

    https://www.hizliresim.com/omuzfvb Yasir hocam, simülasyon oyunum var fakat anr ve kilitlenme oranları çok yüksek.İlk 5’te olan anr ve kilitlenme oranınını özellikle ilk 2’de olan kilitlenme sorununu nasıl çözerim.Tavsiye verirseniz memnun olurum.

    1. yasirkula Avatar

      Kullandığınız bir plugin’den kaynaklı. Hatanın tüm detaylarına bakarsanız, ordaki stacktrace’te sıkıntılı plugin’in ismi yazar diye ümit ediyorum.

      1. Gökmen Avatar
        Gökmen

        Yasir hocam, ekran görüntüleri bu şekilde 1,2,3 sorunların ekran görüntüsü detayına bakabilirsiniz.Ben yazılımcı değilim tam olarak dediğinizi anlamadım.Detaylara baktığınız zaman şuandaki yorumunuz nedir?

        android.app.PendingIntent.checkFlags
        java.lang.Error

        https://www.hizliresim.com/l8c32c3

        android.app.PendingIntent.checkFlags
        java.lang.IllegalArgumentException

        https://www.hizliresim.com/4r03h89

        Native method – android.os.MessageQueue.nativePollOnce
        Input dispatching timed out

        https://www.hizliresim.com/aw0fqt6

      2. yasirkula Avatar

        Projenizdeki Firebase vari Android plugin’lerden güncelleyebildiklerinizi tek tek güncellemeyi deneyin.

  44. Mustafa Avatar
    Mustafa

    Hocam toplabtn diye bir butonum var bir canvasın içerisinde toplabtn’nin parenti bir boş obje bu halde iken toplabtn butonumla etkileşime geçemiyorum tıklayınca tepki vermiyor veya üzerine geldiğimde renk değiştirmiyo.Parentinden çıkardığımda çalışıyor bu neden oluyo olabilir?

    1. yasirkula Avatar

      Parent’ında Canvas component’i varsa ama Graphic Raycaster component’i yoksa ondan olabilir veya parent’ın altındayken görünmez bir UI elemanı butonun üzerinde kalarak input’ları yiyor olabilir. Oyun esnasında EventSystem’in Inspector’unda farenin kimin üzerinde olduğu ve kime tıkladığı bilgilerini görebilirsiniz.

      1. yasirkula Avatar

        EventSystem’da Add Component butonunun altında EventSystem ismiyle bir çubuk var, ona tıklamanız lazım tıklama bilgilerini görmek için. Ben de videoda bir sıkıntı görmedim yalan olmasın. Canvas ve Graphic Raycaster’ı Play moda girmeden önce silip öyle Play moda girince sorun olmuyorsa Unity’nin bir bug’ı olsa gerek.

  45. Mustafa Avatar
    Mustafa

    Hocam mesela ben çoklu hesap desteği olan bir oyun yapmak istiyorum.Veriler player prefs olarak kaydedilicek.Şimdi diyelimki benim paramiz diye bir player prefs değişkenim var.3 tanede hesap desteği olan bir oyunum olsun 3 hesabında parası ayrı olucak ama 3 tane aynı isimde paramiz değişkeni olamaz yani benim seçtiğim hesaba göre o paramiz değişkenini döndürmesi lazım bunu player prefs ile yapabilirmiyim eğer yapamazsam nasıl bir yol izleyebilirim?(istediğim şeye örnek olarak kingdom rush’u verebiliriz 3 tane hesap oynayabiliyor ama hiçbir şeklide diğeri diğerini etkilemiyor.)

    1. Mustafa Avatar
      Mustafa

      Hocam bi sorum daha var mobil veya pc oyunlarında daha doğrusu reklamlı olan oyunlarda veriler serverde mi tutuluyor yoksa playerprefs veya benzeri şeylerle cihazın kendisinde mi tutuluyor.

      1. yasirkula Avatar

        Güvenliği önemli veriler serverda tutulmalı ve serverla client’ın iletişimi olabildiğince güvenli olmalı. Server imkanınız yoksa, binary serialization kullanmak da PlayerPrefs’e göre daha güvenli olur.

    2. yasirkula Avatar

      Bence her kullanıcının kaydı, kullanıcı ismiyle oluşturulmuş bir XML/JSON vb. dosyada tutulmalı. PlayerPrefs ile de “KULLANICIADI_Key” şeklinde kayıt işlemi yapabilirsiniz ama ben ilk önerdiğim yöntemi kullanırdım.

      1. Mustafa Avatar
        Mustafa

        Çok teşekkür ederim hocam vaktinizi ayırıp en kısa sürede sorumu cevapladığınız için :)dediğinizi gibi verileri jsona kaydetmeyi öğrenip oradan tutmaya çalışacağım.Tekrardan teşekkür ederim iyi günler dilerim.

  46. Ali Avatar
    Ali

    İyi günler hocam. Textleri buton olarak atayabilirmiyiz yada canvas’sız buton ekleyebilirmiyiz? Ekleyebilirsek nasıl ekleriz ?

    1. yasirkula Avatar

      Unity’nin Button component’i Canvas’sız kullanılabiliyorsa ben maalesef bilmiyorum.

  47. Mustafa Avatar
    Mustafa

    Süleyman hocam Library\PackageCache\com.unity.package-manager-ui@2.0.7\Editor\Sources\UI\PackageSearchToolbar.cs(152,2): error CS1513: } expected
    hatası alıyorum bunun kaynağı package managerden olduğunu anladım ama bu scripti unity üzerinden nereden bulabilirim.Scriptslerde falan yok.

    1. Mustafa Avatar
      Mustafa

      Hocam package kısmında buldum şimdide bunun kodları çok karmaşık ne ne işe yarıyor pek anlamadım birde bir asseti import edince projeme 150 den fazla hata çıktı bi anda bunun nedeni ne olabilir ki?

      1. Mustafa Avatar
        Mustafa

        Hocam yaptığım değişiklikler yüzünden tüm projelerimde skybox gitti
        https://www.youtube.com/watch?v=K50KUcxLUuc&ab_channel=mustafay%C4%B1ld%C4%B1r%C4%B1m
        buna ne yapabilirim hocam?

      2. yasirkula Avatar

        Package Manager’da bu tarz bir hata daha önce duymamıştım. Bu sizin kontrolünüzde olan bir package değil bildiğim kadarıyla. Ben napardım derseniz, projeniz yeni sayılırsa, başka bir yeni proje açıp ona geçerdim. Yoksa en son yaptığım değişiklikleri geri alırdım. Diğer bahsettiğiniz 150 tane hatayı bilmiyorum, Clear yapınca gitmeyenleri çözmeye çalışabilirsiniz. Videoda ise Window-Rendering-Lighting’den sahneye skybox eklemeyi deneyebilirsiniz.

      3. Mustafa Avatar
        Mustafa

        Tamamdır hocam dediğiniz yerden kaynaklıymış sorun.Aldığım hatalardan kaynaklı varsayılan atanmış skybox’ı devre dışı bırakmış.Teşekkürler hocam :).

  48. Samet TIKIZ Avatar
    Samet TIKIZ

    Hocam selamlar,hazır oyun kaynak dosyaları ile çalışmalar yapıyorum sorumu sormadan önce belirtmek istedim,kısacası kodlama bilgim az.

    Simulator oyununda Level başladağında minibüs datadan instantiate komutuyla sahneye klonlanıyor.Ben durağa geldiğinde bir ara sahne koymak istedim her şey tamam ama klonlanan minibüsü durağa geldiğinde yok etmek ayrı bir insantiate ile tekrar klonlamak veya SetActive yöntemiyle false yapıp ara sahne bitince true olsun istiyorum.Ama klonlanan asıl sahnedeki minibüsü scriptte kod ile nasıl buldurabilirim örnek kod ile açıklama yapabilir misiniz ? Teşekkür ederim şimdiden

    1. Samet TIKIZ Avatar
      Samet TIKIZ

      Hocam eğitimlerinize biraz daha bakınca jeton düştü şu şekilde çözdüm çok teşekkürler 🙂

      GameObject minibus = GameObject.Find(“minibus1(Clone)”);
      minibus.SetActive(false);

      1. yasirkula Avatar

        Çözüm bulabilmenize sevindim 🙂 Dilerseniz şu dersime de bakabilirsiniz: https://yasirkula.com/2019/07/27/unity-bir-scriptten-baska-bir-scriptteki-degiskene-ulasmak/

  49. Mustafa Avatar
    Mustafa

    Süleyman hocam benim yaptığım oyunu mobile uyarlasam diyorum nerelerini değiştirmem gerekir mesela.Birde sadece mobil oyun tasarlarken ınput sisteminde mi değişiklik oluyor mesela bizde diyoruz ya pc de oyun yaparken Input.GetMouseButtonDown() gibi bunun mobildeki karşılığını unuttum.Yani sadece input sistemi mi değişiyor?

    1. yasirkula Avatar

      Aklıma gelen en bariz değişiklik, dediğiniz gibi input sisteminde oluyor. GetMouseButtonDown ve mousePosition kodları Android’de de doğrudan çalışıyor, belki kodunuzu hiç güncellemeniz bile gerekmez. Onun dışında UI’ın mobilde kullanılabilir olması ve oyunun mobilde takılmaması için gerekirse optimize edilmesi de mobili PC’den ayırabilen diğer özellikler.

  50. Mustafa Avatar
    Mustafa

    Yasir hocam 3.5 aydır uğraştığım projem nihayet bitti. Bakıp incelemek isterseniz https://redspid.itch.io/dungeon-wars

    1. yasirkula Avatar

      Hayırlı olsun 🙂 Oyunu geliştirmeye devam etmeyi düşünüyorsanız, polishing de yapabilirsiniz, yani görsel ağırlıklı olarak kullanıcı deneyimini iyileştirmeye çalışabilirsiniz. Bu, grafiksel hataları çözmek olur, metinlerde renk teorisinden faydalanmak olur, arayüze/oynanışa ufak animasyonlar eklemek olur vs. Umarım oyununuz beklediğiniz ilginin çok daha fazlasını görür, tekrardan hayırlı olsun 😀

      1. Mustafa Avatar
        Mustafa

        Çok teşekkürler hocam yorumunuz için.Farklı şeyler denemek istedim normal şartlarda bu tarz sıra tabanlı oyunlarda 5 slot koyuyorlar ben 15’e çıkardım bunu çıkarınca tabi bambaşka hatalar almaya başladım sonra vuruş sistemiydi falan sayısız hata aldım.Eğer direk 5 slot olarak tasarlamış olsaydım çok daha kısa sürede oyunu bitirebilirdim daha güzel olabilirdi belki ama o zamanda neden slot sayılarını arttırmadıklarını anlamazdım.Az çok mantık oturdu hocam dediğiniz gibi diğer geliştiriciler oynanışa ağırlık verdikleri için gereksiz detaylara uğraşmıyolar buda ister istemez projenin dahada gelişmiş olmasını sağlıyor.Teşekkürler hocam tekrardan yorumunuz için.

  51. Mevlüt Uçar Avatar
    Mevlüt Uçar

    Yasir hocam merhabalar. Programımızda, Y ekseninde Scroll ile text kaydırıyoruz. Ancak bir problemimiz var, Programımızda, Y kordinatı 65536’ya geldiği anda kaydırmakta olduğumuz text duruyor ve ilerlemiyor. Unity’nin standart limiti 16Bit olduğu için 65536 limitine takılıyoruz diye biliyorum. UInt32 ile sorun çözümü yapılabiliyormuş sanırım. Unity 2020 ve 2021 sürümlerini kullanıyoruz. UInt32’nin kullanımını nasıl yapabiliriz? Gerekli kodu nereye yazmamız gerekiyor bilginiz var mı acaba? Teşekkürler.

    1. yasirkula Avatar

      Transform.position.y değeri 65536’yı geçince de çalışmalı ancak takılarak hareket etmeli. Canvas’larda 65536 vertex limiti var (en azından bir ara vardı, değişti mi bilmiyorum), yaşadığınız sıkıntı onla mı alakalı bilmiyorum ama siz scroll yapınca sorun gerçekleşiyor dediğiniz için emin olamadım.

      1. Mevlüt Uçar Avatar
        Mevlüt Uçar

        Evet yaşadığımız sıkıntı vertex limitinden kaynaklanıyor. Butonlar ile hız ayarlı kaydırma işlemi yapıyoruz, koordinat 65536’ya geldiğinde ekran kaydırma duruyor, tekrar butona tıkladığımızda ilk tıklayışta hareket olmuyor ; ikinci tıklayışta 2x hızda hareket etmeye başlıyor. Bizim burada çözmek istediğimiz sıkıntı vertex sınırını artırmak aslında. UInt32 ile 65536 limitini 4,294,967,295’e çıkarabiliyormuşuz fakat kullanımı hakkında bilgimiz yok. Daha önce deneyimleme şansınız olduysa yardımlarınızı bekliyoruz. 🙂

      2. yasirkula Avatar

        Normal Mesh’lerde indexFormat ile vertex limiti artırılabiliyor (ancak 32 bit’i eski Android cihazlar desteklemiyor) ama UI’da bu mümkün değil gibi duruyor: https://forum.unity.com/threads/please-allow-indexformat-uint32-for-unityengine-ui-graphic-meshes.1156700/. İsterseniz attığım linke mesaj atıp konuyu hortlatın. Eğer nested canvas kullanırsanız, her nested canvas’ın kendi içinde 65536 vertex limiti olur sanırım. Aklıma gelen başka bir çözüm maalesef yok.

  52. Eren ALKAN Avatar

    Hocam merhaba, unityde singleton yerine dependency injection kullanılıyormuş. Kimileri bunun daha iyi bir yöntem olduğunu söylüyor. Türkçe unity tarafında kaynak yok. Dependency injectionın unity tarafında nasıl kullanıldığı hakkında bir yazı yazar mısınız?

    1. yasirkula Avatar

      Daha önce duyup bir iki kez incelemiştim ama nasıl çalıştığını yine unuttum. Benim çalıştığım projeler maksimum orta seviyede oluyor, çok kompleks projelerde çalışmadım. Bu projelerde de singleton işimizi gördü şimdiye kadar.

  53. Ali Uygun Avatar
    Ali Uygun

    Kolay gelsin hocam size bir sorum olucak. Excel dosyasını unity projeme bağladım ekleme ve search işlemlerini yapabiliyorum ancak Diğer sahnede bu verilerin hepsini nasıl gösterebilirim ya da hangi UI aracıyla gösterebilirim ?

    1. yasirkula Avatar

      Maalesef Excel, Word vb. dosyaları Unity’de hiç kullanmadım. Asset Store veya GitHub’da yardımcı olacak hazır asset’ler vardır belki ama aklıma gelen bir şey şu anda yok.

      1. Ali Uygun Avatar
        Ali Uygun

        Teşekkür ederim hocam sağolun.

  54. Barış Biltekin Avatar
    Barış Biltekin

    Selamlar
    BezierSolution namespace ‘inde bulunan BezierWalkerWithSpeed sınıfındaki OnPathCompleted metoduna bir fonksiyon atayarak buradan şu şekilde bir sınıfa ulaşmaya çalıştım fakat sınıfı görmüyor. Nerede yanlış yapıyorum?
    GameObject.FindGameObjectWithTag(“GAMECORE”).GetComponent();

    1. yasirkula Avatar

      BezierSolution plugin’i Assembly Definition File kullandığı için, klasörü dışındaki script’lere erişememekte. Kaynak kodunu düzenleyecekseniz içindeki BezierSolution.Runtime ve BezierSolution.Editor dosyalarını silmeniz (EKLEME: ve plugin’i Plugins klasörünün dışına taşımanız) lazım. Ama bence bunun yerine, BezierWalkerWithSpeed objenizin onPathCompleted event’ine Inspector’dan veya dışarıdan kod ile bir fonksiyonu kaydedin. BezierSolution’dan dışarıya erişemeseniz bile, dışarıdan BezierSolution’a erişebilirsiniz.

  55. Mustafa Avatar
    Mustafa

    Hocam 2d oyunlarda tam olarak şöyle bir animasyon yapmak istiyorum https://robertpinero.itch.io/mv-thief-sprites
    bu sitede adam yapmış 2 boyutlu karakter sağa dönünce animasyonun sağdan görünümüne geçiyor sola basınca soldan görünümüne geçiyor.Bu kontrolü neyle yapmış olabilir.Animasyonlarda kullandığımız animasyon kontroller kullanmıyor galiba mantığını anlıyamadım sizin bilginiz varmı bu konu hakkında?

    1. yasirkula Avatar

      Transform’un Scale X değerini -1 ile çarpıyor olabilir mi? Veya Sprite Renderer’ın Flip X değerini de açıyor olabilirler.

      1. Mustafa Avatar
        Mustafa

        Hocam ama o yazdığınız 2 komutta rotasyonun yaptığının aynısını yapmıyor mu?Bunlarda herhangi bir gecikme olmadan dönüş sağlıyor animasyonda bozulma olmuyor baya garip duruyor gerçekten.

      2. yasirkula Avatar

        Sitede arka arkaya 4 karakter daire çizerek yürüyorlar onu diyorsunuz diye varsayıyorum. Scale X yapmak Rotation vermek ile aynı etkiyi verir o konuda haklısınız. Ben halen ama o yürüme animasyonunda Scale/Rotate vermenin nerede sıkıntı oluşturabileceğini tam anlayamadım 😀

      3. Mustafa Avatar
        Mustafa

        Hocam burda şöyle bir şey mi yapmışlar acaba animasyon haric karakter eğer sol ok tuşuna basarsa spriterenderer ımagesi sola dönük haline geçiyor sağ ok tuşuna basarsa spriterenderer ımagesi sağa dönük haline geçiyor.Ama burda animasyondan bağımsız oluyor gibi çünkü karakter sağa dönükkende yukarı dönükkende vurabiliyor.Ve ayrıyeten bu karakter yukarı baktığında arkadan görünümüne geçiyor arkadan görünümünde iken vurma tuşuna basınca saldırma animasyonu çalışıyor.Her farklı görünüm için mi animasyon oluşturmuşlar?Yoksa tek bir animasyon oluşturup her görünüme mi ayarlamışlar?
        böyle sorarsam biraz daha mantıklı sormuş olurum galiba.

      4. yasirkula Avatar

        Anladım. AnimatorController’da parametreler oluşturabiliyoruz. Örneğin yön için 0 (sol), 1 (yukarı), 2 (sağ) ve 3 (aşağı) değer alabilen bir Integer oluşturmuş ve buna koddan değer vermiş olabilirler. Saldırı animasyonunda da bu int’in değerine göre 4 yöne saldırı animasyonundan doğru olanı çalışıyor olabilir. Veya hiç parametre kullanmadan, direkt koddan Animator.Play veya Animation.Play ile ilgili animasyonu oynatıyor olabilirler.

  56. Mustafa Avatar
    Mustafa

    Süleyman hocam unity’de button componentinin kendi özellikleri varya biz bunlara kod dışında müdahale edebiliyoruz.Ama kod içerisinde iken nasıl müdahale edebiliriz.
    Şöyle bir şey yazamıyorum.

    void buttonuzerinegelince(gameObject btn)
    {
    if(btn.name==”kirmizi”)
    {
    btn.getComponent().normalColor=new Color32(255,0,0);
    btn.getComponent().highlightedColor=new Color32(0,0,0);
    }
    else if(btn.name==”mavi”)
    {
    btn.getComponent().normalColor=new Color32(0,0,255);
    btn.getComponent().highlightedColor=new Color32(0,0,0);
    }
    else if(btn.name==”yesil”)
    {
    btn.getComponent().normalColor=new Color32(0,255,0);
    btn.getComponent().highlightedColor=new Color32(0,0,0);
    }
    }
    benim yapmak istediğim şey button üzerine gelince butonun adına göre işlem yapması ama bu yazdığım özelliklerin koddaki karşılığını bulamadım.Nasıl bir kod yazabilirim hocam?

    1. yasirkula Avatar

      Önce btn.colors’ı bir ColorBlock değişkeninde tutup onun normalColor ve highlightedColor değişkenlerini değiştirebilirsiniz. Akabinde bu ColorBlock objesini geri btn.colors’a değer olarak verebilirsiniz.

      1. Mustafa Avatar
        Mustafa

        Verdiğiniz kodu eksizsiz bir şekilde yazdım sorunsuz bir şekilde çalıştı.Sağolun hocam:)

  57. Wolf Avatar
    Wolf

    Unity kodu derlemiyor. Kod da değişiklik yaptığım zaman kodu derliyordu artık derlemiyor. Bu sorunu nasıl çözebilirim.

    1. yasirkula Avatar

      Eğer Unity’e geri dönmeden Unity’nin arkaplanda otomatik olarak derlemesini diyorsanız, Unity’i tekrar başlatabilirsiniz. Aksi halde konsolda hatalar varsa onları çözmeniz gerekiyor.

  58. Samet TIKIZ Avatar
    Samet TIKIZ

    Hocam merhabalar, Ben oyunda garaj sahnesine datadan araba çekiyorum ve sonraki arac butonuna bastığımda ise önceki araca tag vererek gameobject.setactive yöntemiyle yok ediyorum ama bir daha o arabaya gelmek istediğimde root prefabı kapatmış oluyor ve araç gelmiyor düzgün çalışması için nası bir methot kullanmalıyım? Teşekkürler şimdiden 🙂

    1. yasirkula Avatar

      Dediğiniz gibi kapalı objelerde FindWithTag çalışmıyor. Arabalara boş parent GameObject’ler verip tag’ı ona verirseniz ve onu kapatmazsanız, bu parent vasıtasıyla arabalara erişebilirsiniz. Aksi taktirde, spawn edilen arabaları bir List veya Dictionary gibi listede saklayıp oradan erişmelisiniz.

      1. Samet TIKIZ Avatar
        Samet TIKIZ

        Hocam çok teşekkürler sayenizde hallettim 🙂

  59. Mustafa Avatar
    Mustafa

    Süleyman hocam unity’de mouse ile bi yere tıkladıysam başka bir yere tıklamadığım sürece ‘enter’ tuşuna bastığımda mouse ile tıklamış kabul ediyor.Garip olan şu ki yönlendirme tuşları+enter tuşuna bastığımda o yerlerdeki nesneleri de tıklanmış kabul ediyor ben bu özelliği kapatamaz mıyım?Enter tuşunun bu tıklama özelliğini kapatırsam sorun kökten çözülebilir gibi geliyor.

    1. yasirkula Avatar

      EventSystem’daki “Send Navigation Events” değişkenini kapatmayı deneyebilirsiniz.

  60. Mustafa Avatar
    Mustafa

    Hocam oyun projemde çoğu şeyi bitirdim artık az bi eksiğim kaldı.Bir sorun yaşadım onu anlatayım ilk önce.Ben sıra tabanlı bir savaş oyunu yapıyorum 5 vs 5 lik bir savaş olduğunu düşünün.Karakterin sırası gelince diğerinin yanına gidip ona saldırıyor.Ön taraftakilerde sıkıntı çıkarmıyor ama arka taraftakilere gelince sıkıntı yaşıyorum.Sprite rendererdan kaynaklı bir sorun yaşıyorum.Atıyorum Saldıran karakterin kolu bacağı gözüküyor savunan karakterin kılıcı,kafası,vücudu gözüküyor.Buna çözüm olarak şöyle bir şey düşündüm mesela benim 5 karakterim olsun 5 tanede vücut parçam olsun.
    karakter 1 parca1 sp1 parca2 sp2 parca3 sp3 parca4 sp4 parca5 sp5
    karakter 2 parca1 sp6 parca2 sp7 parca3 sp8 parca4 sp9 parca5 sp10
    karakter 3 parca1 sp11 parca2 sp12 parca3 sp13 parca4 sp14 parca5 sp15
    karakter 4 parca1 sp16 parca2 sp17 parca3 sp18 parca4 sp19 parca5 sp20
    karakter 5 parca1 sp21 parca2 sp22 parca3 sp23 parca4 sp24 parca5 sp25
    bu şekilde yaparsam karakter 5 her zaman önde olucak saldırsada savunsada bu şekilde yapmam mantıklı mı sizce?yada farklı bir çözüm öneriniz varmı hocam?

    1. yasirkula Avatar

      Eğer problemi doğru anladıysam, karakterlere Sorting Group component’i vererek bu sorunu aşabilirsiniz: https://docs.unity3d.com/Manual/class-SortingGroup.html

      1. Mustafa Avatar
        Mustafa

        Hocam nokta atışı yaptınız.Sorun tamamıyla çözüldü çok teşekkürler.

  61. wolf Avatar
    wolf

    Android projeyi çıktı alabiliyorum fakat admob eklentisini eklediğim zaman projeyi çıktı alamıyorum.
    Sorun nerden kaynaklı olabilir?

    1. yasirkula Avatar

      Konsolda aldığınız hata mesajlarından birinde hatanın kaynağı yazmalı.

      1. wolf Avatar
        wolf

        CommandInvokationFailure: Gradle build failed.
        C:\Program Files\Java\jdk1.8.0_351\bin\java.exe -classpath “C:\Program Files\Android\gradle-7.6-rc-4\lib\gradle-launcher-7.6.jar” org.gradle.launcher.GradleMain “-Dorg.gradle.jvmargs=-Xmx4096m” “assembleRelease”

        stderr[
        Warning: Mapping new ns …

        hata mesajı ve şimdi de apk çıktı alamıyorum.

      2. yasirkula Avatar

        Attığınız kısım asıl hata mesajını içermiyordu. Asıl hata mesajı ya konsoldaki başka bir hata mesajında olabilir ya da bu attığınız hata mesajının daha aşağısında olabilir.