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

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/

Kadir Can Geyik için bir cevap yazın Cevabı iptal et


255 yanıt

  1. sahan Avatar
    sahan

    Hocam merhaba admobtan bana böyle bir mesaj geldi.
    Avrupa Ekonomik Alanı’nda (AEA) veya Birleşik Krallık’ta IAB’nin Şeffaflık ve Kullanıcı Rızası Çerçevesi (TCF) ile entegre olan bir sertifikalı kullanıcı rızası yönetim platformu (CMP) kullanmanız gerekiyor.

    GDPR kullanıcı rızası alma mesajı yayınlanmalıdır. Aksi takdirde, AEA ve Birleşik Krallık’taki uygulama reklam gelirleriniz önemli ölçüde etkilenebilir.

    Başlamak için aşağıdaki seçeneklerden birini belirleyin:

    1.Google’ın CMP’sini kullanarak bir GDPR kullanıcı rızası alma mesajı oluşturacağım
    2.TCF ile entegre olan sertifikalı bir CMP kullanarak GDPR kullanıcı rızası alma mesajı oluşturacağım
    3.GDPR kullanıcı rızası alma mesajı oluşturmayacağım

    Hangi şıkkı işaretleyeceğimi ve ne yapacağımı bilemedim o yüzden size sormak istedim yardımcı olursanız sevinirim.

    1. yasirkula Avatar

      Bence şurdaki sistemi kullanmanız lazım (1 numaralı seçenek) ama benim bu konuda tecrübem yok ve teknik destek verebileceğimi sanmıyorum, önden bilgilendirmiş olayım: https://developers.google.com/admob/unity/privacy

  2. Barış Samurkaş Avatar
    Barış Samurkaş

    Hocam merhaba kolay gelsin, Unity yeni bir ücretlendirme seçeneği eklemiş Unity Runtime fee diye. Benim 200 bin indirme oluyor ama 200 bin dolar tabii ki de kazanamıyorum yılda. Yıllık 200 bin dolar kazanamıyorsam 200 bin indirme olsa bile bizi etkilemiyor bu Unity’nin değişikliği sanırım? Siz bu haberi duyduysanız ne anlanıdız, X(Twitter)’te Unity son gönderilerinde çok fazla olumsuz yorumlar almış çok tepki çekti ama 200 bin dolar da büyük rakam niye insanlar bu kadar kızdı anlamadım acaba ben mi yanlış anladım diye şüphelendim. Yani o kadar yılda kazanıyorsak ve yazılımlarını kullanıyorsak o miktarı bağış bile yapmalıyız bence 🙂 https://eu-images.contentstack.com/v3/assets/blt95b381df7c12c15d/blt8b54438bc1dcfbb2/65007062086dec3f775bb619/NewFeeTable.png?width=828&quality=80&format=webply&disable=upscale https://www.eurogamer.net/unity-reveals-plans-to-charge-per-game-install-drawing-criticism-from-development-community#:~:text=Once%20the%20fees%20kick%20in,decrease%20as%20higher%20install%20thresholds https://www.ign.com/articles/why-unitys-new-install-fees-are-spurring-massive-backlash-among-game-developers

    1. yasirkula Avatar

      Evet ben de duydum. Burada sıkıntı şu: o eşiği aştıktan sonra Amerika’dan gelen her bir install 0.2 dolar yani 5 TL fatura demek oluyor ve oyunun demo sürümlerinin kurulumları da buna dahil. Ayrıca oyuncu oyunu silip tekrar indirdiğinde tekrar bu ücreti ödemeniz gerekiyor. Oyunu korsan indiren kişilere veya gıcıklığına sürekli silip indiren kişilere karşı önlem alındığı iddia ediliyor ama inanmıyorum. İlaveten, Unity ile çoktan piyasaya sürdüğünüz tüm oyunlar da bu ücret değişikliğine maruz olacakmış ki bu bence yasal değil çünkü piyasadaki mevcut oyunlar yapılırken sözleşmede böyle bir ücretlendirme yoktu. Son olarak da, Unity’nin bu install verilerini toplaması demek, kullanıcılardan istekleri dışında analitik veri toplamak demek oluyor ki bu da gizlilik anlamında ayrı bir sorun. Herkes gibi ben de bu saçma sistemi sevmedim ve sorumlularının oyun sektöründen ebediyen kovulmalarını istiyorum.

  3. mimarbunyaminyakut Avatar

    hocam merhaba,
    Unity de yaptığım uygulamada kullanıcı 3d modele istediği rengi ve dokuyu verebiliyor ve bunun ekran görüntüsünü alabiliyor ancak kullanıcının seçtiği renk ve dokuların bir tuş ile tablo halinde görmek istiyorum. bu mümkün mü ?
    şöyle bir şey yapmak istiyorum aslında önceden bir excel tablosu oluşturup unity ile ilişkilendirmek istiyorum, diyelim kullanıcı 3d model üzerinde kapı rengi kırmızı, duvar rengi beyaz olsun istiyor, print tuşuna basınca tabloda kapı rengi kırmızı, duvar rengi beyaz olduğu yazsın?

    1. yasirkula Avatar

      Unity için Excel plugin’i görmüştüm sanırım ama kullanmadım (GitHub veya Asset Store’da olabilir). Onu kullanarak bunu yapmak mümkün olur.

      1. Enes Avatar
        Enes

        hocam ben Flipper Dunk oyunu yapıyorum topa vurmak için PlayerControllerim var public class PlayerController : MonoBehaviour
        {
        public float rotationSpeed = 100f;
        public float maxRotation = -75f;
        public float returnSpeed = 25f;

        private Rigidbody2D rb;
        private bool isRotating = false;

        private void Start()
        {
        rb = GetComponent();
        }

        private void Update()
        {
        if (Input.GetMouseButtonDown(0) && !isRotating)
        {
        StartRotation();
        }

        if (Input.GetMouseButtonUp(0) && isRotating)
        {
        StopRotation();
        }

        if (isRotating)
        {
        RotateStick();
        }
        else
        {
        ReturnToZero();
        }
        }

        private void StartRotation()
        {
        isRotating = true;
        }

        private void StopRotation()
        {
        isRotating = false;
        }

        private void RotateStick()
        {
        float currentRotation = transform.localRotation.eulerAngles.z;
        float newRotation = currentRotation – (rotationSpeed * Time.deltaTime);

        if (newRotation maxRotation)
        {
        newRotation -= (rotationSpeed*6) * Time.deltaTime;

        }
        rb.MoveRotation(newRotation);
        }

        private void ReturnToZero()
        {
        float currentRotation = transform.localRotation.eulerAngles.z;

        float returnSpeedModified = returnSpeed * (1f – Mathf.Abs(currentRotation) / Mathf.Abs(maxRotation));

        float newRotation = currentRotation + (returnSpeedModified * Time.deltaTime);

        if (newRotation > 0)
        {
        newRotation = 0;
        }

        rb.MoveRotation(newRotation);
        } bu sekilde ben sınırlama yapmak istiyorum ama bir türlü sınırlandıramadım matf kullanıyorum ama bu seferde sistem çalısmıyor yadımcı olabilir misiniz

      2. yasirkula Avatar

        Eğer newRotation maxRotation’dan büyükse, “newRotation -= blabla” yapmak yerine direkt “newRotation = maxRotation” yapabilirsiniz. Ama bunun yerine benim önerim, newRotation’ın değerini hep Mathf.MoveTowards fonksiyonu ile vermeniz. O durumda verdiğiniz hedef değerin dışına taşma olmaz.

  4. Barış Samurkaş Avatar
    Barış Samurkaş

    Hocam merhabalar, ilk başta apk yüklenen oyunları/uygulamaları aab güncelleyebilme sorununu çözdüm. Bu kişinin videosu çok yardım etti https://www.youtube.com/watch?v=Xy1wZbXLt3U&t=433s.
    Eğer ilk baştan aab yüklerseniz böyle görünüyor https://www.hizliresim.com/l5x5kc9
    developer consoleda oyunlarınıza girin ve sol taraftaki kurulum > uygulama bütünlüğü butonuna basın ilk aab yüklersek hiç sıkıntı olmuyor. Fakat benim bir oyunum böyleydi https://www.hizliresim.com/47qc1mv https://www.hizliresim.com/o72bnyz bazı oyunlarım ise böyle https://www.hizliresim.com/9qch1ku gördüğünüz gibi ilk apk yüklediğimden bazı oyunlarımda 1 seçenek var iken bazısında 2 seçenek var (Android studio ile başlayan). Her durumda Java ile başlayanı seçiyoruz ama benim bugün yaptığımda Android studio ile başlayan seçenek olmayandı. Eğer o seçenek yoksa şifreleme ortak anahtarını indirin diyeceksiniz ve cmd kodunda klasörü belirteceksiniz. Youtubedeki kişi bunu anlatıyor(Android seçeneği olan), burada https://www.hizliresim.com/9qch1ku siyah olan kodu cmd’ye yazmak gerekiyor. Bu arada niye böyle bazı oyunlar fark ediyor onu da hiç anlamadım açıkçası. Ama hiç zor olan bir şey de yok çok basit bir fark. O youtube videosu https://www.hizliresim.com/9qch1ku versiyonu yapmış yani kodu cmd ye yazmak gerekiyor. Ben ise aşağıdaki kodum

    java -jar C:\Users\Baris\Yenileme\Tool\pepk.jar –keystore=C:\Users\Baris\Yenileme\Key\Keystore.keystore –alias=”nightmare of escape” –output=C:\Users\Baris\Yenileme\Output\abc.pem –rsa-aes-encryption –encryption-key-path=C:\Users\Baris\Yenileme\PublicKey\encryption_public_key.pem

    Bunda ise cmd ye yazmıyoruz direkt klasör var çünkü. https://www.hizliresim.com/8w4qtx8 böyle bütün klasörleri hazırladım ve o indirdiğimizi PublicKey klasörüne attım. (Şifreleme ortak anahtarını indirin dediğimiz)

    Bence herkes en başta aab yüklemeli https://medium.com/berkut-teknoloji/google-play-app-bundle-uygulama-i%CC%87mzalama-c13872ec3f4f
    Burada da “Sıfırdan bir uygulama oluşturduğunuzda aşağıdaki adımları yapmanıza gerek kalmayacaktır” diyor. Yani ilk aab formatta yüklersek zaten her şey hazır oluyor.

    https://www.oracle.com/tr/java/technologies/downloads/#jdk20-windows
    Bunu kurmazsak cmd de Java is not recognized as an internal or external command, operable program or batch file. hatası veriyor. NOT: Benim pc de hiç java jdk yoktu hep unity’nin kendi için yeten javası vardı.

    https://adoptium.net/
    latest lts butonundan indirdim.
    OpenJDK indirme yolunu sordum ChatGPT ye bu siteyi önerdi, güvenilirmiş.
    Bunu kurmazsak bu hatayı veriyor https://stackoverflow.com/questions/76516045/cannot-find-any-provider-supporting-rsa-none-oaepwithsha1andmgf1padding-when-t en son output a çıktı vermiyor şifreleri girdikten sonra bir hata veriyor.

    Son olarak yukarıdaki cmd koduna da bakarsanız alias kısmı çok kritik
    Keystore oluştururken alias kısmı olur oyunun adını girerdik ya işte oraya ben direkt boşluklu bir şekilde girmiştim oyun adını eskiden fakat boşluk olunca da olmuyor cmd de hata veriyor ben de “alias adı” şeklinde tırnak içine aldım hata olmaması için.

    Hocam bunlar başımdan geçti siz de bu dediklerime bir göz gezdirirseniz sevinirim. Malum herkesin eskilerden apk oyunları var umarım herkes bu işlemleri başarıyla tamamlar.

    1. yasirkula Avatar

      Çok detaylı bir şekilde açıklamışsınız elinize sağlık gerçekten 🙂 Sorunu çözebilmenize de sevindim. Bence bu tecrübenizi kendi blog’unuzda veya başka platformlarda da paylaşın çünkü tek bir yerde olduğunda nolur nolmaz siteye bir şey olur falan, bu kadar emeğiniz boşa gitmesin.

      1. Barış Samurkaş Avatar
        Barış Samurkaş

        Hocam bir de videodaki gibi şifreleme özel anahtarını indirin butonu yoksa böyle kod çıkıyorsa https://www.hizliresim.com/9qch1ku imzalamayı yapınca “Uygulama imzalama anahtarınızın şifreleme gücü, Google Play tarafından önerilen minimum standardı karşılamıyor” uyarısı oluyor ama aab güncellemek için engel değil bu iyi. Bu 2015, 16, 17,18 de yayınlananlar için geçerli sanırım. 2019 ve sonrası yayınlanan oyunlarımda ise şifreleme ortak anahtarını indirin diyor ve şifreleme ortak anahtarını indirin seçeneği ile yapılınca “Mevcut uygulama imzalama anahtarınızın şifreleme gücü, Google Play tarafından önerilen minimum standardı karşılıyor veya aşıyor” diyor. Yani o ufak farklılık tamamen oyunun ne kadar eskiden yayınlaması ile ilgiliymiş.

  5. Barış Avatar
    Barış

    Hocam önceden ilk başta apk olarak yüklenen oyunu aab güncelleme yapmaya çalıştım developer console hata verdi kaydolmanız gerek vs. gibi bir şey dedi. Fakat ilk başta aab formatında yüklediğim iki tane oyunumu aab güncelledim hiç sıkıntı çıkmadı. İlk başta apk formatında yayınlanan bir oyunu aab olarak google playde güncellemek imkansız sanırım? İlk apk olarak yayınladıklarımla apk olarak devam mı edeyim sizce?

    1. yasirkula Avatar

      Böyle bir kısıtlama olduğunu sanmıyorum ama gerçekten varsa da maalesef bilgim dışında kalıyor. Aldığınız hata mesajını aratmanızı öneririm çünkü hata başka yerde olabilir.

      1. Barış Avatar
        Barış

        https://www.youtube.com/watch?v=ktnNIRQRnbc&t=656s Hocam işte hata bu ama bunu anlatan unity üzerinden anlatmıyor. Yine denedim aab olmadı, apk direkt kabul etti güncellemeyi. aab güncellemeye çalışınca “Bir android app bundle yükleyebilmek için play uygulama imzalama’ya kayıtlı olmanız gerekir.” diyor. ingilizce hata karşılığı ise “To upload an android app bundle you must be enrolled in app signing by Google play” sonuç olarak benim anladığım sanırım developer console üzerinden imzalamam gerekiyor, developer console üzerinden imzalama yapmayı biliyor musunuz?

      2. yasirkula Avatar

        Videoda bahsedilen süreci bildiğimi sanmıyorum 😦 Araştırırsam bir şeyler bulabilirim belki ama bu safhada benim yerime sizin araştırmanız benim açımdan daha iyi olur. Benim önerim, hata mesajının İngilizce versiyonunun sonuna “unity” (tırnaklı) ekleyerek tekrar arama yapın. Umarım sorununuza çözüm bulabilirsiniz.

  6. Barış Avatar
    Barış

    Hocam yine ilginç bir sorun var 🙂 https://www.hizliresim.com/ieb25f5 burada gördüğünüz gibi Menu sahnesindeki UI butonlar üst üste binmiş https://www.hizliresim.com/9vhuzl6 buna da bakarsanız ne dediğimi anlayacaksınız. Bunun tek çözüm yolu ise Menu sahnesine çift tıklayıp (veya başka bir sahne önemli değil.) bu şekilde düzelmesi. Çözümü bu kadar basit hiçbir şey yapmaya gerek yok aslında fakat eğer bu ufak hareketi yapmazsanız ve build alırsanız ilk resimdeki gibi bozuk build alıyor, yani build i bile etkiliyor zaten beni bu panikletti. Sizce bu şekilde idare edeyim mi?

    1. yasirkula Avatar

      Vertical Layout Group kullanıyorsunuz tahminimce. İsterseniz aynı objeye bir de Content Size Fitter verip Vertical Fit değerini Preferred Size yapmayı deneyin.

  7. Barış Avatar
    Barış

    Hocam 2022.3.2f1 sürümünü kullanıyorum https://www.hizliresim.com/2v09p7l burada scale değeri 1x olması gerekmez mi? Halbuki daha projede hiçbir şey yok ve yeni oluşturdum sizce sebebi nedir? Ayrıca 2023 beta veya alpha sürümlerini önerir misiniz beta sürümler iyi mi sizce?

    1. yasirkula Avatar

      Bence de 1x olmalı, bende öyleymiş en azından. Free Aspect butonuna tıklayınca “Low Resolution Aspect Ratios” seçeneğini kapatmayı deneyebilirsiniz. Olmazsa da can sağlığı deyin bence 😀 Bu arada ben alpha ve beta sürümlerini kullanmıyorum, stabil çalışmama ihtimaliyle karşılaşmak istemiyorum.

      1. Barış Avatar
        Barış

        Build settings’deki platform ayarı windows, mac, linux iken 1.3x oluyor ama android e alınca 1x oluyor ilginç bir durum. Yani çözüm sanırım andoid veya iOS a geçirmek platform ayarını.

      2. yasirkula Avatar

        Ona takılmayın bence 😀

  8. Barış Samurkaş Avatar
    Barış Samurkaş

    Hocam mackbook arızalandı. Oyunlarımı iOS build almak için windows bilgisayarıma sanal makine kurayım diyorum. Sizce o şekilde xcode, unity vs. çalışabilir mi? Ayrıca https://www.virtualbox.org/ buradan yüklememiz gerekiyormuş ve ücretsizmiş duyduğuma göre ama bundan şüphelendim apple niye bedava yazılımını kullandırsın, sanal makineden virüs bulaşır mı sizce? Halbuki tek yapacağım xcode çalıştırmak. Eğer virüs riski varsa hiç bulaşmayacağım.

    1. yasirkula Avatar

      Sanal makineden build alınır mı maalesef bilmiyorum. Sanal makine uygulamasının kendisinden virüs bulaşabilir ama sanal makinede çalışan işletim sisteminden bulaşamaması lazım. Apple’ın ücretsiz sanal işletim sistemi sunması ise bana gerçek dışı geliyor ama araştırmadığım için kesin bilgi veremiyorum.

  9. Ahmet Avatar
    Ahmet

    Hocam selamlar, google ads’ e reklam vermek istiyorum. Şirketim yok uygulamamdan para da kazanmıyorum. Bu yüzden goole ads’e vereceğim paradan kdv falan kesmeme gerek yok değil mi? Google Ads’e vereceğim paradan herhangi bir vergi ödememe gerek yok diye biliyorum. Vergi mükellefi olmadığım için. Size de bir danışayım dedim.

    1. yasirkula Avatar

      Bu konuda yasal tavsiye verebilecek durumda değilim ama benim bildiğim kadarıyla vergi ödemiyorsunuz.

      1. Ahmet Avatar
        Ahmet

        Hocam siz google ads kullandınız mı peki? Kdv vermemiz ne zaman gerekiyor? Bir bilginiz var mı?

      2. yasirkula Avatar

        Eskiden kullandım ama KDV olayını araştırmamıştım. KDV vermemiz gerekiyorsa beni de aydınlatırsanız sevinirim.

  10. Sey Avatar
    Sey

    Merhaba hocam. Oyunum 1 gün önce Play Store’da yayınlandı. Ancak her şeyi doğru yaptığım halde google admob reklamları gözükmüyor. Bu neyden kaynaklı olabilir, birkaç gün daha mı beklemem gerekiyor. Ayrıca oyun indirme almasına rağmen google admobdaki verilerim (istek vs.) 0 gösteriyor.

    1. yasirkula Avatar

      AdMob hataları konusunda artık ben de tıkandığım için o dersi yorumlara kapattım. Tek önerebileceğim, logcat kullanın ve reklam ile alakalı log’ları internette aratın.

  11. Ahmet Avatar
    Ahmet

    Selamlar, oyunumdaki playerprefs kayıtlarını Google Play Services e kayıt etmenin yöntemi nedir? Google Play Services girişi yapıldığı zaman kayıtlar yüklenecek.

    1. yasirkula Avatar

      Muhtemelen PlayerPrefs’e kaydedebildiğiniz tüm verilerin üzerinden tek tek geçip, PlayerPrefs.HasKey true döndürürse (PlayerPrefs’e kaydedilmiş) onu Google Play Services’e de kaydetmelisiniz. Google Play Services’tan kayıtları yüklerken de tüm kayıtların üzerinden tek tek geçip onları PlayerPrefs’e yazabilirsiniz.

      1. Ahmet Avatar
        Ahmet

        Playerprefsleri json a mı dönüştüreceğim? Örnek bir kod gösterebilir misiniz acaba?

      2. yasirkula Avatar

        İsterseniz JSON yapabilirsiniz, olur. Bunun için tüm PlayerPrefs datasını tutan bir class yazıp içindeki tüm değişkenlerin değerini PlayerPrefs’ten tek tek çekmeli (otomatik yapan bir şey bildiğim kadarıyla yok) ve bu class’ı JsonUtility.ToJson veya başka bir JSON plugin’i ile JSON’a çevirmelisiniz.

      3. Ahmet Avatar
        Ahmet

        Araştırıyorum bu konuda yeniyim. Birçok şey çıkıyor karşıma. O yüzden playerprefs’i google play services ‘e kaydetmek ve giriş yapıldığında çekmek için en basit ve kullanışlı olması açısından sizin önerdiğiniz yöntem hangisi?

      4. yasirkula Avatar

        Google Play Services da tıpkı PlayerPrefs gibi key-value bazlıdır diye tahmin etmiştim o yüzden PlayerPrefs.SetInt diyorsanız benzer şekilde PlayServices.SetInt gibi bir fonksiyon çağırırsınız gibime gelmişti ama json da geçerli bir çözüm. Burda en zorlu kısım, daha önce kaydedilmiş tüm PlayerPref’lerin üzerinden geçebilmek ve bunların int mi string mi vb. olduğunu bilebilmek ama bu aşamayı tek tek elle yapmak yerine optimize edebilir misiniz o işte milyon dolarlık soru. Bunu yapabilmek için aklıma gelen tek şey, kaydettiğiniz tüm PlayerPrefs’lerin bir listesini tutan bir veriyi ayrıca PlayerPrefs’e kaydedebilir ve her PlayerPrefs kaydederken onu da güncelleyebilirsiniz. Maalesef çok pratik bir çözüm aklıma gelmiyor.

      5. Ahmet Avatar
        Ahmet

        Uğraştıracak gibi. Hocam ayrıca bu Google Play Services Google Cloud kullanıyor. Burası paralı değil mi? Yani Google Play Services kullanırsam düzenli Cloud’a para vermem gerekecek. “Start your Free Trial with $300 in credit. Don’t worry—you won’t be charged if you run out of credits” yazıyor Google Cloud’da.

      6. yasirkula Avatar

        Mesajınız gözümden kaçmış kusura bakmayın. En azından eskiden Google Play Services ücretli değildi diye biliyorum, şu anda bir şey değiştiyse malesef bilgim yok. Google Play Services eğer Google Cloud’dan bağımsız çalışmıyorsa, dediğiniz gibi ücretli gibi duruyor ama emin olmadan önce google’da iyi bir araştırmanızı öneririm.

  12. AZERBAIJAN-Karabakh Avatar

    Salam . Unity 3D də Oyuncunun oyundan çıxdığı və girdiyi anların tarixini necə yadda saxlaya bilərəm (ANDROİDdə).
    Öncədən təşəkkürlər!

    1. yasirkula Avatar

      Tarihi elde etmek için DateTime.Now veya DateTime.UtcNow kullanabilirsiniz. ToString ile bunu string şeklinde kaydedip Parse ile string’den geri DateTime elde edebilirsiniz. Oyunun başlangıcını Start fonksiyonunda, oyunun bitişini OnApplicationQuit fonksiyonunda tespit edebilirsiniz. Bu bahsettiğim şeyleri google’da aratırsanız daha detaylı bilgi de elde edebilirsiniz.

  13. Mustafa Avatar
    Mustafa

    Merhaba obje yok olduğunda particle effect in çalışmasını istiyorum ama çalışmıyor en basit yöntemle nasıl yapabilirim

    1. yasirkula Avatar

      Eğer partikül efekti yok olan objenizin child’ı ise, objeyi Destroy etmeden önce partikülün parent’ını SetParent(null) ile değiştirin yoksa partikül obje ile beraber yok olur.

  14. kursad Avatar
    kursad

    Merhabalar sitenize göz attım kaynak konusunda Türkçeye çevirip hazırladığınız eski bir kaynak gördüm. Unity ortamına yeni girmiş ve biraz da kafası karışmış birisi olarak bu kaynak hala geçerliliğini korumakta mı? Nasıl bir yol izlemeyi tavsiye edersiniz?

    1. yasirkula Avatar

      Eski derslerin içeriğinin yarısından çoğu hâlâ geçerli olabilir ama geçerliliğini yitiren kısımlar da büyük olasılıkla çıkar. Ben yol çizebileceğimi sanmıyorum ama öneri olarak Unity’nin kendi web sitesindeki İngilizce dersleri önerebilirim. Türkçe içerik olarak belki Udemy’deki komple dersler en doygun içerikler olabilir ama uzun zamandır piyasa araştırması yaptığımı da söyleyemem.

  15. enes Avatar
    enes

    merhaba kolay gelsin unity de çıktı alırken bir problem yaşıyorum sorunum tam olarak şu şekilde eğer ki oyunuma admob eklentisini eklersem il2cpp ile çıktı alamıyorum, fakat admob eklentisi varken il2cpp’yi mono’ya çevirirsem çıktı alabiliyorum, birde il2cpp açık iken admob eklentisini hiç eklememişsem yine çıktı alabiliyorum böyle bir hata ile karşı karşıyayım bunu nasıl çözebilirim her hangi bir fikriniz var mı? şimdiden teşekkür ederim iyi çalışmalar.

    1. yasirkula Avatar

      Aldığınız hata mesajlarından birisinde hatanın sebebi net olarak yazar. En başta olmasa da hata mesajının ortalarında yazabilir. O mesajı bulmanız lazım. Akabinde google’da aratınca bence sonuçlar alırsınız. Dilerseniz direkt “unity admob il2cpp android build fail” diye de aratabilirsiniz ama sizinkinden bağımsız sorunlara da denk gelebilirsiniz.

  16. Ali Avatar
    Ali

    Merhaba, unityde cihaz kamerasından yazıyı tanıyacak bir şey yapılabilir mi? Cihaz kamerasını açacağız, kitabın bir sayfasına tutup oradaki yazıyı içeri text olarak aktaracağız. Yani okumasını sağlayacağız.

    1. yasirkula Avatar

      Bunun için hazır eklentiler olabilir. “unity android camera read text” şeklinde bir arama yapmayı deneyebilirsiniz.

  17. Mustafa Avatar
    Mustafa

    İyi günler hocam. Benim bildirimle alakalı bir sorum olacaktı. Uygulamamda kayıtların bildirim şeklinde alınabileceği bir sistem yaptım. 1000 tane kayıt yaptım mesela istersem birer dakika ara ile, istersem 1 saat ara ile 1000 tane bildirim alabiliyorum. Bu yöntem cihazlara bir zarar verir mi? Ya da bu tarz bir yöntem yanlış bir kullanım mı? Bunun sınırı yok çünkü. Eski android telefonlarla uygulamadan atma yapıyor. Yenilerinde sıkıntı yok gibi(en fazla 100 tane bildirim denedim). Cevabınızı merak ediyorum.

    1. yasirkula Avatar

      Senaryonuzu tam olarak anlayamadım ama birden çok bildirim deyince aklıma gelen bir şey, bir önceki bildirimi varsa uçurup yerine sadece yeni bildirimi koymanız. Örneğin önceki bildirimde 1 kayıt yapıldı yazıyor idiyse, o bildirimi kaldırıp yerine 2 kayıt yapıldı yazan tek bir yeni bildirim koyabilirsiniz. Bildirimlerle gerçek anlamda uğraşmadığım için belki dediğim şey teknik olarak mümkün değildir ama yine de olabilitesini araştırmanızı öneririm.

      1. Mustafa Avatar
        Mustafa

        100 bildirimde Android 9 cihazda tam bildirimleri ayarlama sırasında 1-2 saniyelik yavaşlama oluyor. 300 de 3-4 civarı. Sizce bir sınır koymalı mıyım? Whatsapp gibi uygulamalarda internete bağlanınca bazen 1000-2000 bildirim birden geliyor. Cihaza bir şey olmuyor. Belki sadece ısınıyor.

      2. yasirkula Avatar

        Bildirimlerle ilgili maalesef yeterince bilgim yok :/

  18. Serkan Avatar
    Serkan

    Hocam merhaba,
    Konu başlığı olarak nereye yazacağımı bulamadım. Bir sorum olacak.
    Visual studio da yazdığımız kodların unity de derleme sırasını nasıl görebiliriz. Bazı kodların çalışma sırasına göre çakışma oluyor. tüm çalışan kodları sırayla görebileceğimiz bir şey var mıdır.?

    1. yasirkula Avatar

      Eğer “Edit-Project Settings-Script Execution Order” veya [DefaultExecutionOrder] kullanmıyorsanız, script’lerin belli bir sırası yok diye biliyorum. Bir sahnede A scripti B scriptin’den daha önce çalışabilirken, başka bir sahnede bu tam tersi olabilir.

      1. Serkan Avatar
        Serkan

        Peki hocam Awake metodu içindeki tüm kod ve metodlar çalışması tamamlandıktan sonra mı start çalışıyor.

      2. yasirkula Avatar

        Evet tüm Awake’ler tüm Start’lardan önce çağrılır. Ancak bir GameObject oyunun başında inaktif vaziyette ise, onun Awake’i objeyi ilk defa aktif hale getirene çağrılmaz.

  19. Barış Avatar
    Barış

    Hocam 2021 sürümü kullanmaktayım. Build settings de max texture size 1024 yaptım şimdi asla hiçbir texure 1024 üstüne çıkamaz değil mi? Ayrıca unity de JavaScript en son hangi sürümde destekleniyordu bilginiz var mı?

    1. yasirkula Avatar

      Benim bildiğim kadarıyla oradaki iki ayar sadece editör için geçerli, editörde asset import etmek uzun sürmesin diye eklenmiş ayarlar. İstediğiniz şey için şu script’ten faydalanabilirsiniz: https://stackoverflow.com/a/19069942/2373034. Eğer bir texture’un Max Size değeri halihazırda 1024’ten düşükse değerini ellememenizi öneririm.