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

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

SON GÜNCELLEME: 22.06.2019

  • Unity’i ücretsiz olarak nereden indirebilirim?

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

  • Unity ücretsiz mi?

Evet, Free sürümü ücretsiz. Plus sürümü ise aylık $35.

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 sürümde yaptığım oyunları yayınlayabilir ve onlardan para kazanabilir miyim?

Kesinlikle evet! Free sürümde oluşturduğunuz oyunlardan dilediğinizce para kazanabilirsiniz. Bu paradan Unity Technologies’e tek kuruş komisyon ödemiyorsunuz. Buradaki tek şart, sizin veya şirketinizin aylık gelirinin $100,000’dan az olması. Yoksa Plus sürüm kullanmanız lazım (eğer $200,000’dan fazla kazanıyorsanız da Pro sürüm kullanmalısınız).

  • Free ve Plus sürümleri arasındaki farklar neler?

Unity’nin kendi sitesinden iki sürümün karşılaştırılmasını inceleyebilirsiniz: https://store.unity.com/

Kullanıcının gözlemleyeceği en büyük fark, oyunun başında çıkan Unity logosunu Plus sürümde 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?

Ben AdMob kullanıyorum ve memnunum. Diğer reklam platformlarını hiç kullanmadığımdan onlar nasıldır kesin birşey diyemem.

AdMob kullanıyordum ve memnundum. Ancak başıma gelen bir olaydan sonra artık oyunlarımda AdMob’u tek başına kullanmayacağım. Şu anda Heyzap mediation ile birlikte Chartboost, Unity Ads ve Facebook Audience Network (banner için) kullanıyorum. Eğer ilgilenirseniz, Heyzap aynı zamanda AdMob da destekliyor.

  • Android oyunum cihazda 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’ı Internal ile Gradle arasında değiştirebilirsiniz. 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, uygulama kimliğinizi AndroidManifest.xml’e eklediğinizden emin olun ve Play Services Resolver-Android Resolver-Force Resolve yapmayı deneyin.

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

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

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

yorum
  1. tolgahan dedi ki:

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

  2. tolgaguducu dedi ki:

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

  3. Bayram Uğurlu dedi ki:

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

  4. Barış dedi ki:

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

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

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

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

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

  5. Barış dedi ki:

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

    • yasirkula dedi ki:

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

  6. Barış dedi ki:

    Leaderboard sistemi veya Achievement sistemini nasıl yapabilirim?

  7. Kadir Can Geyik dedi ki:

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

  8. Barış dedi ki:

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

    • yasirkula dedi ki:

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

      • Barış dedi ki:

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

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

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

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

      • yasirkula dedi ki:

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

  9. Emre dedi ki:

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

    • Emre dedi ki:

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

    • yasirkula dedi ki:

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

  10. Alper dedi ki:

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

    • yasirkula dedi ki:

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

  11. byportakal dedi ki:

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

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

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

    Click on Retry to relaunch Unity and reopen your project.

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

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

  12. Harun dedi ki:

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

    • yasirkula dedi ki:

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

      • Harun dedi ki:

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

      • yasirkula dedi ki:

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

  13. fatih dedi ki:

    100.000 doları geçersek ne olur ?

    • yasirkula dedi ki:

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

  14. nickname dedi ki:

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

  15. anonim dedi ki:

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

  16. Yusuf dedi ki:

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

    • yasirkula dedi ki:

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

      • Yusuf dedi ki:

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

      • yasirkula dedi ki:

        – CemberParent
        — CemberObjesi

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

  17. Mehmet Ali dedi ki:

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

  18. ahmet dedi ki:

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

    • yasirkula dedi ki:

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

  19. Barış dedi ki:

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

    • yasirkula dedi ki:

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

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

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

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

  20. Serkan dedi ki:

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

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

    • yasirkula dedi ki:

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

      • Serkan dedi ki:

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

  21. yusuf dedi ki:

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

  22. Ahmet dedi ki:

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

    • yasirkula dedi ki:

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

      • Ahmet dedi ki:

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

      • yasirkula dedi ki:

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

      • Ahmet dedi ki:

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

      • yasirkula dedi ki:

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

      • Ahmet dedi ki:

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

  23. js dedi ki:

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

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

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

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

    • yasirkula dedi ki:

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

      • js dedi ki:

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

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

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

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

      • yasirkula dedi ki:

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

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

  24. Onur dedi ki:

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

    • yasirkula dedi ki:

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

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

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

    • yasirkula dedi ki:

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

  26. yasirkula dedi ki:

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

Cevap Yazın

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

WordPress.com Logosu

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

Google fotoğrafı

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

Twitter resmi

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

Facebook fotoğrafı

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

Connecting to %s

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