Yeniden merhabalar,
Asset Store’dan projenize import ettiğiniz veya ekibinizdeki grafikerlerden aldığınız Texture’ların bazen tek bir tanesinin bile onlarca MB (ender durumlarda yüzlerce MB) yer kapladığına şahit olabilirsiniz. Bu durum genelde resmin sıkıştırılmamış TIFF veya TGA gibi bir formatta olmasından kaynaklanır. Bu resimleri PNG‘e çevirerek, kalitede hiçbir bozulma olmadan bu dosyaların boyutlarını ciddi miktarlarda düşürebilirsiniz. Örneğin ben Asset Store’dan import ettiğim bir 3D asset’in bu tarz Texture’larını PNG’e çevirerek, projenin boyutunu 1.08 GB’dan 510 MB’a kadar düşürdüm. Yanlış anlaşılma olmasın: Texture’ların sadece Unity projesinde kapladığı alan düşüyor, build alınan oyunun boyutu değişmiyor. Ama bu bile, projenin harddiskinizde daha az yer kaplaması veya projenin daha kolay yedeklenebilmesi gibi konularda yardımcı oluyor.
Bu iş için yazdığım editör script’ini görmek için yazının devamını okuyabilirsiniz…

Yapmanız gereken, projenizin Editor klasöründe (bu klasör yoksa oluşturun) ConvertTexturesToPNG adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/407e15017a01324a9ea95bf1bdea72f7
Ardından Window-Convert Textures to PNG ile Convert to PNG penceresini açabilirsiniz. Buradaki ayarlar şunlar:
- Root Path: bu klasör içindeki resimler PNG’e çevrilir. Alt klasörlerdeki resimler de çevrilirler
- Textures to Convert: sadece bu uzantılara sahip resimler PNG’e çevrilirler
- Excluded Directories: bu klasör(ler)deki resimlere dokunulmaz. İki klasörün konumunu
;
(noktalı virgül) ile birbirinden ayırabilirsiniz (Textures to Convert‘te olduğu gibi) - Keep Original Files: eğer işaretlenirse, PNG’e çevrilen resimlerin asıllarına dokunulmaz; işaretlenmezse resimlerin asılları otomatik olarak silinirler
- Max Texture Size: bu ebattan büyük resimlerin boyutu bu ebata düşürülür
- OptiPNG Path: hazır bir PNG sıkıştırma kütüphanesi olan OptiPNG ile, PNG’e çevrilen resimlerin boyutunu yaklaşık %20 daha küçültmeye yarar. Bunun için önce optipng.exe dosyasını indirmeli (şuradaki Windows build), ardından bu dosyanın konumunu bu kutucuğa girmelisiniz. İsterseniz bu alanı boş bırakabilirsiniz
- OptiPNG Optimization: sadece OptiPNG Path‘in değeri girilmişse gözükür. Bu değer arttıkça, OptiPNG’nin resim boyutlarını düşürme olasılığı artar ama aynı zamanda resimlerin PNG’e çevrilmesi çok daha uzun sürer
Ayarları doldurduktan sonra, Convert to PNG! butonuna tıklayarak süreci başlatabilirsiniz. Eğer “Keep Original Files” seçeneği kapalıysa veya projenizin Editor Settings‘indeki “Asset Serialization Mode” ayarı “Force Text” ise, PNG’e çevrilen resimlerin kullanıldığı yerler otomatik olarak güncellenir (yani mesela bir materyal Resim.tiff’i Texture olarak kullanıyorduysa, materyal artık otomatik olarak Resim.png’i Texture olarak kullanır). Aksi taktirde tüm bu referansları siz elle güncellemelisiniz.
BONUS: Projedeki Tek Renkten Oluşan Texture’ları Bulmak
3D model asset’lerinde kullanılan Specular, Metallic veya Emission gibi Texture’lardan bazıları sadece tek bir renkten oluşabilir. Eğer materyalde aynı etkiyi Smoothness gibi bir float değeri değiştirerek de elde edebiliyorsak, bu tamamen boşuna bir performans kaybıdır çünkü ekran kartı o materyale sahip objeleri ekrana çizerken basit bir float’ın değerini okumak yerine, boş yere komple bir Texture’un değerini okumak zorunda kalır. Ama bazen materyaldeki float değerlerle oynasak bile, tek renkli Texture’un verdiği etkiyi elde edemeyebiliriz. Bu durumda ise yakınabileceğimiz başka bir nokta var: 3D modelciler genelde bu tek renkli Texture’ların boyutunu 32×32 gibi ufak boyutlara ayarlamazlar, 1024×1024 gibi kocaman boyutlara ayarlarlar. Texture zaten tek bir renkten oluştuğu için, 32×32 de olsa 1024×1024 de olsa birebir aynı etkiyi gösterecek olmasına rağmen o Texture’u yapan 3D artistin ihmalinden dolayı Texture boş yere 0.5 MB fazla yer kaplar ve bu fazlalık hem RAM’e hem de build alınan oyunun boyutuna etki eder (build alınan oyun sıkıştırıldığı için ona 0.5 MB’tan daha az etki eder tabi)!
Üstte bahsettiğim durumları tespit etmeye yardımcı olması için basit bir editör script’i yazdım:

Yapmanız gereken, projenizin Editor klasöründe (bu klasör yoksa oluşturun) SingleColorTextureDetector adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/19905788e68d4c2bbb8e229b5670480a
Ardından Window-Single Color Texture Detector ile Solid Textures penceresini açıp Refresh butonuna tıklayabilirsiniz. İşlem tamamlanınca, projenizdeki tek renkten oluşan tüm Texture’lar listelenecek. Listelenen konumlardan birine çift tıklarsanız, o konumdaki Texture otomatik olarak seçilir.
Listedeki bir Texture’un nerelerde kullanıldığını bulmak için, şu dersimde paylaştığım Asset Usage Detector plugin’ini kullanabilirsiniz. Eğer ilgili Texture’un ebatları 32×32’den büyükse ve Texture’un büyük olmasını gerektirecek çok ama çok özel bir durum yoksa, ilk iş o Texture’un Max Size‘ını 32’e düşürün. Böylece o Texture’un hem RAM hem de build boyutunu optimize etmiş olacaksınız. Ardından Texture’un kullanıldığı materyallerde gerçekten gerekli olup olmadığına bakın. Eğer Texture’u materyalden kaldırınca hiçbir şey değişmiyorsa ne iyi ne âlâ, yaptığınız değişikliği kaydedin. Eğer Texture kalkınca materyalin görünümü değişiyorsa, materyaldeki float değerleri değiştirerek aynı etkiyi alabiliyor musunuz kontrol edin. Alabiliyorsanız o şekilde yaptığınız değişiklikleri kaydedin, aksi taktirde Texture’u materyale geri verin.
Bu dersi de noktaladık. Sonraki derslerde görüşmek üzere!
Merhaba Yasir Kula! Ben igrahiga. Cevabin icin tesekurler. C# tutorial’lari: Basit hareket kodlari, liste mantigi,IEnumarator nedir, Raycast nasil kullanilir, basit bir envanter yapimi veya grappling hook (kancali tabanca) benzeri seyleri koyabilirsin. Bunlari boyle basit olarak anlatabilirsin. Yani en fazla 1 saat’ini falan alir diye dusunuyorum (resim ekliceksen o baska). Yada youtube’da video cekebilirsin sadece site uzerinde sinirla kalma. Her neyse. Yine bir kez cevabin icin tesekurler. Uzun zamandir siteni takip ediyorum. Ve cok seviyorum. Yeni icerikler’de gorusmek uzere 🙂
-igrahiga
İlginiz için teşekkür ederim. IEnumerator’lardan coroutine dersimde bahsettim. Onun haricindeki konularla ilgili spesifik ders yazmadım ama yazdığım/çevirdiğim bazı derslerde bunların da bahsi geçti. Şu an için bu konularda bir ders yazma planım yok ama önerileriniz için teşekkürler ^^
PNG resimler demişken, assetler arasında olmayan, atıyorum bi tablo sitesindeki resimlerden birini oyundaki duvara yerleştirmek mümkün olabilir mi?
Evet mümkün, “unity download image from internet” şeklinde arama yaparsanız örnek kodlar bulabilirsiniz.
Merhaba Yasir Kula. En son mart’da blog yayinlamissin. Acaba daha fazla blog yayinlarmisin? Mesela gamemakerdeki gibi C# dersleri. Basit animasyon olusturma yada basit oyun yapma tutoriallari gibi.
Cevabini bekliyorum
-igrahiga
İlgine teşekkür ederim. Aklıma gerçekten faydalı bir ders fikri geldiğinde sitede paylaşıyorum ama bir süredir bu tarz bir şey olmadı. İşle ve asset’lerimle de uğraştığım için, özellikle oturup nasıl bir ders yazabilirim diye düşünmeye çok fırsatım olmuyor. Çalışırken karşılaştığım problemleri çözerken bazen fikir kendiliğinden kafamda beliriyor ve o zaman onu ders haline çeviriyorum. Şu an için bu şekilde devam etmeyi planlıyorum.
Hocam tekrardan merhaba. Bir soru sormak istiyorum. Asset store üzerinden 2d platformer tarzında bir sprite paketi aldım. Ana karakterin saldırı animasyonları ayrı ayrı resimler halinde çizilmiş(ok atma ve kılıç saldırısı). Oyun içerisinde 2 saldırı halini de kullanmak istiyorum ama kılıç saldırısında karakterin arkasına asılı olan sadak(okları koyduğu muhafaza) çizilmemiş. Aynı şekilde ok saldırısında da kılıç çizilmemiş. Yani ok attıktan sonra kılıç sallasa sırtındaki sadak birden yok olmuş gibi olacak. Youtube üzerinde gördüğüm bu çözüm (runtime sırasında animation override controller ile yapılmış) kullanılabilir mi ? Videoyu link olarak en sona ekledim. Ve sizin bu konuda bir öneriniz var mı ? Çok teşekkür ederim. İyi çalışmalar. https://www.youtube.com/watch?v=DNSqdMcL_dU
Anladığım kadarıyla karakterin arkasındaki oklar ve kılıç karakterin sprite’ına gömülüler, yani ayrı obje değiller. Bu durumda yapabileceğiniz bir şey bence yok ama yine de asset’i satın aldığınız kişiye mail atıp onun ne önereceğine de kesinlikle bakın derim.
Hocam cevap için teşekkür ederim. Ben aslında şu şekilde düşündüm, silah değiştirme butonu ile ok ve kılıç arasında geçiş yapılabilecek. Ancak kılıç seçiliyken, karakter üzeindeki kılıç spritelarındaki idle animasyonunun oynaması, ok seçiliyken ok spritelarının idle animasyonu oynaması lazım. 2 seçenek için(ok ve kılıç ile) ayrı ayrı idle, jump, run vs animasyonları var. Videodaki yöntem işime yarar gibi geldi ama tecrübeli olarak sizin fikrinizi merak ettim. Tekrardan teşekkür ederim. Yorumunuzu bekliyorum. Olmadı satıcıya mail atacağım ya da tek çeşit saldırı da yapabilirim ama bir geçiş tuşu işi çözebilir gibi duruyor.
Belki yanlış düşünüyorum ama bu bana şöyle geliyor: bir selfie fotoğrafınız var ve bu fotoğrafta elinize bir ışın kılıcı eklemek istiyorsunuz. Yani fotoğrafta olmayan bir şeyi fotoşop ile fotoğrafa eklemek istiyorsunuz. Sizin durumunuzda da, sprite’ta olmayan kılıcı/oku siz sprite’a eklemek istiyorsunuz. Sprite’ı fotoşoplamak dışında aklıma bir şey gelmiyor. Dediğim gibi, belki ben yanlış düşünüyorumdur o yüzden asset’in satıcısı en kesin şekilde sizi yönlendirir.
Hocam fikriniz için teşekkür ederim. Sanırım ben anlatamadım 🙂 çünkü ok tutan karakterin idle animasyonu var, kılıç tutan karakterin de ayrı idle animasyonu var. Ben silah değiştirme butonu ile bu animasyonları runtime sırasında değiştirme işlemi verimli olur mu diyerek sormuştum. Örnek videodaki gibi ( https://www.youtube.com/watch?v=DNSqdMcL_dU0 ).Bilmiyorum bu açıklayıcı oldu mu. Siteniz genel anlamda çok faydalı bunun için ve burada insanlara bireysel yardımcı olduğunuz için çok teşekkür ederim. İyi çalışmalar
Performans anlamında bir sıkıntı olmaz. Absürd durumlarda grafiksel hata olur mu bakmanız lazım. Mesela tam kılıcı sallarken animasyonu değiştirince ne olacak kontrol etmeniz lazım.
admin unity rigidbody2d de freeze position y yi aciyorum kodla ama nasıl kapaticagimi bulamadim acma kodum
Rigidbody2d.constraints = RigidbodyConstraints2D.FreezePositionY böyle aciyorum ama kapatmıyorum
kapatmıyorum
gerek kalmadi çözdüm admin
admin bir zamanlar bir kod gördüm ama şimdi unuttum script ile sprite a 1 den fazla resim çekmek nasıl olur
random.range ile yapıyordum ama şimdi unuttum ıenumeratır kullanıyordum yanlış hatırlamıyorsam
Herhalde coroutine dersim işine yarar: https://yasirkula.com/2018/11/20/unity-3d-coroutineler/
yaptım admin bana şey lazım prefab var benim image olan onu 2 tane clone ile sınırlandırmak istiyorum 2 tanden fazla clone yapmasın bunu nasıl yapabilirim kodla
“static int klonSayisi = 0;” değişkenin OnEnable’da 1 artırıp OnDisable’da 1 azaltabilirsin. Eğer değer 2’ye eşitse, OnEnable’da değeri artırmak yerine objeyi Destroy edersin.
farklı bir yöntem kullandım ama sayende oldu teşekkürler admin ama destroy hep son clone objeyi yok ediyor ben ilk clone hep yerinde sabit oluyor bunu istemiyorum ben ilk clone yok etsin bunu yapmanın yolu var mı
daha doğrusu en önce oluşan obje yok olsun hiç bir obje sabit olmasın bunu istiyorum
O zaman bir
static List<GameObject> objeler = new List<GameObject>();
değişken oluşturup OnEnable’da objeyi bu listeye eklemen lazım. Eğer listenin Count’u 2’den büyük olursa, listenin 0. index’indeki elemanı Destroy edip sonra RemoveAt ile listeden çıkarman lazım.Unknown error occurred while loading ‘Assets/Scenes/Oyun.unity’.
Assets/Scenes/Oyun.unity’ yüklenirken bilinmeyen bir hata oluştu.
admin bu hatayı alıyorum internette çözümü yok diyor ama bildiğin bir çözün yolu var mı herşeyim biter bu sahne olmassa
Sahneyi duplicate edip açmayı, .meta dosyasını silmeyi, Notepad++ ile açıp içinde gözüne çarpan anormal bir şey var mı kontrol etmeyi deneyebilirsin. En kötü durumda, bu acı bir hayat dersi olur: bundan böyle yaptığın projeleri git’te yedeklersin ve benzer sorun olsa da en son yedeklediğin sürümden devam edersin.
Hocam merhabalar şu videodaki karakter kontrolü nasıl çalışıyor ve arkada iz bırakmayı nasıl böyle smooth yapabilirim.
Karakter kontrolü için X koordinatını lerp etmek ve Z koordinatını sürekli artırmak dışında bir şey yaptıklarını sanmıyorum. Arkasında bıraktığı izi bilmiyorum, onu araştırmanız lazım.
Github giste yonlendirmek yerine dirket embeded ile siteye kodu koysaniz olmaz mı ?
Gist’lerimi arada güncelliyorum. Her seferinde sitedeki kodu da güncellemekle uğraşmak istemiyorum o yüzden böylesi benim için daha rahat oluyor.
Hocam Merhaba, android için 3D bir oyun yapıyorum oyunda az obje var fakat oyun telefonlarda hafif bir kasma yapıyor. Tüm objeleri low poly kullandım tüm optimizasyon videolarını izledim fakat düzeltemedim. Bilgisayarımda 350 ile 400 fps arası alıyorum 1080×1920 portrait modda ama dediğim gibi telefonlarda 30 40 fps belki daha az arada da fps drop yapıyor. Tüm scriptleri özenle optimize bir şekilde ayarladım ve kodunu ona göre yazdım ama çözemedim.
Şöyle de saçma bir şey var 3 GB rame sahip eski model bir telefonda 30 fps sabit oynatırken yeni bir telefonda fps 20 lere düştüğü oluyor buna da anlam veremedim.
Yardımcı olursanız sevinirim, teşekkürler.
Oyunu Profiler ile test etmeniz lazım: https://yasirkula.com/2020/03/26/unity-profiler-kullanimi/
Sorunu çözdüm daha doğrusu neden kaynaklandığını çözdüm fakat sorunu çözemedim 🙂
Skinned Mesh Renderer kulllanıyorum ve sahnede 30-40 düşman olmasını gerektiriyor bu sebeple oyun kasıyor. Skinned mesh renderer konsunun bir çözümü var mı ?
– Player Settings’te GPU Skinning ayarını değiştirmeyi deneyebilirsiniz
– SkinnedMeshRenderer’ların Quality’sini düşürebilirsiniz
– LOD sistemini kullanarak uzaktaki düşmanları normal MeshRenderer ile çizebilirsiniz (o düşmanlar tamamen statik duracaklar). Bunun için düşmanın MeshRenderer ile çizildiği ayrı bir GameObject’e ihtiyacınız var, uzaktaki düşmanlar hangi statik pozda duracaklarsa bu MeshRenderer o pozda olmalı. “unity skinned mesh renderer save mesh” araması işinize yarayabilir. Ayrıca LOD sistemi dersim: https://yasirkula.com/2020/10/17/unity-lod-sistemi/
– SkinnedMeshRenderer animasyonlarını shader ile vermek konusunda daha önce çalışmalar yapılmıştı, “unity skinned mesh renderer animation instancing” şeklinde arama yaparak bu çalışmalara bakabilirsiniz
https://www.hizliresim.com/5cna40
admin bu sorunu çözemedim internette jobs menüsünden yapıyorlar ama o menü yok nasıl ekliyeceğimi de bulamadım
https://forum.unity.com/threads/a-native-collection-has-not-been-disposed-enable-full-stacktraces-how.1043248/
bu linkte jobs menüsü var bende yok nasıl ekleyebilirim bu sorunu basıl çözebilirim
Kullandığınız bir plugin’den kaynaklı olabilir diye düşünüyorum. Jobs menüsü için Package Manager’dan Burst kurmanız lazım ama belki buna gerek kalmadan sorunun kaynağını tespit edebilirsiniz. Eğer bu sorunun ne zaman çıktığını biliyorsanız (mesela diyelim her sahne geçişinde kesin çıkıyorsa), oyunda kullandığınız plugin’leri geçici olarak tek tek silip hangi plugin’i silince sorunun çözüldüğüne bakabilirsiniz. Veya sorun editörde belli bir eylem yapınca ortaya çıkıyorsa, google’da o eylemi, bu hata mesajı ile birlikte İngilizce olarak aratabilirsiniz.
çalıştırıyoum editörde sorun olmuyor herşey sorunsuz sonra editörden durdurup tekrar çalıştırınca bu hayatı alıyorum
Package Manager’dan oyuna daha sonradan eklediğiniz paketler neler? Örneğin 2D SpriteShape paketini eklediniz mi?
ekli de en son onu mu ekledim hatırlamıyorum kullanmadığın packetleri silmiştim en son
Eğer hâlâ ekliyse ondan olabilir. Eski sürümlerinde bu hata varmış, güncelleyince düzeliyormuş: https://issuetracker.unity3d.com/issues/a-native-collection-has-not-been-disposed-resulting-in-a-memory-leak-is-thrown-when-2d-sprite-shape-controller-is-disabled
bendeki unity sürümü 2021.1.6f1 ve package manager de güncelleme yok 2dspriteshape de ne yapmam lazım anlamadım siliyim mi?
sprite shape sürümü 6.0.0 attığın linkteki sürümden yüksek gene aynı hata
O zaman ondan değilmiş bilmiyorum.
tmm sağol yine de silsem onu ne olur
jobs menüsü ekledim ama nasıl kullanıcağımı anlamadım internette baktım ama anlamadım nasıl kullanıcam yığın izlemesini açtım ama nereye kaydediyor ne yapıyor anlamadım
En başta attığın linkte ne yapmanı söylüyorsa onu yap sadece derim. Büyük ihtimalle hatayı neyin verdiğini konsola yazmaya yarıyordur bu değişiklik. Eğer 2D Sprite Shape kullanmıyorsan silebilirsin. Silince hata çıkmıyorsa sıkıntı olmaz heralde. Akabinde Unity’e restart atınca hata da çözülüyorsa Burst’ü tekrar silebilirsin.
bişey fark ettim bütün sahnelere DontDestroyOnLoad eklemişim ondan olabilir mi
Gerçekten bilmiyorum, bu sorun benim yardımcı olabileceğim bir sorun değil.
tmm yine de teşekürler
sorunu çözmeden build etsem play store yüklesem sorun olur mu
Play Store’un oyunu reddetmesine sebep olmaz, sadece oyunun memory leak’ten dolayı uzun oynayışın ardından çökme riski olur. Ama bu sorunun sadece editöre has olması ihtimali de var, bazı hatalar oyunu build alınca gerçekleşmez. Öyleyse hiçbir sıkıntı olmaz.
tmm sağol hayırlı bayramlar bu arada
Teşekkürler hayırlı bayramlar.
sa admin admob da Reklam ve İçerik Çakışması hatası alıyorum ama banner reklamını kaldırdım kodları sildim admobdan da kaldırdım sadece geçiş reklamı var ama yine de kabul etmiyor nasıl çözebilirim bunu
Bu hatanın ney olduğunu bilmiyorum. Epey bir zaman önce de AdMob desteğimi tamamen kestim o yüzden AdMob sorunlarınızı AdMob ekibine veya başka birilerine sormanız lazım.
admin internetten baktım ama anlamadım play console de eski sürümü nasıl kaldırabilirim son sürüm dışında diğerlerinin kalkmasını istiyorum admob daki hata bu yüzdenmiş eski sürümü kullanan olduğu için hatayı aldığımı söyledi biri
Üretim-Sürümler’den en son sürümün bilgilerine bakınca orada “Tutulan uygulama paketleri ve APK’lar” daha önceki sürümlerden hâlâ yayımda olan APK’lardır. Orası boşsa herhalde eski APK’lar zaten yayımda değildir ama belki ben yanlış biliyorumdur.
ben tekrar oynaya geçiş reklamı ekledim o sorun oluşturmaz dimi
Genelde oraya koyuyorlar, ben de sorun oluşturmadığını ümit ediyorum.
https://www.hizliresim.com/k4kby3m admin bu hataları çözdüm istersen söyliyim başkası sorarsa söylersin
Söylersen faydalı olur, güzel olur.
2. uyarının çözümü unity de export ediyorsun projeyi herhangi bir klasöre android studio ile açıyorsun gradle.scriptin içinde “—-proguard-unity.txt—-“içine bu kodu yapıştırıyorsun “-keepattributes LineNumberTable,SourceFile” bu kadar 3. uyarı için ise unity build settings de symob.zip var onu işaretliyorsun 2021.1.7f.1 de ise seçenekler var debugger seçtim ben onu play.console a abb yükledikten sonra 3 noktaya tıklayıp sembol yükle diyorsun symbol.zip i oraya yüklüyorsun biraz karmaşık oldu istersen resimli bir şekilde anlatabilirim
Teşekkürler, resimli anlatıma benim için gerek yok. İhtiyaç duyan olursa bu mesaja yorum yazar.
admin reklam çakışması aldıktan sonra düzeltim hatayı ama şimdi reklam gelmiyor Bundle Identifier değiştirince mobilde test edince reklam geliyor play console yüklenmiyor Bundle Identifier değiştirilebilir mi
Play Store’a bir kere APK yükledikten sonra Bundle Identifier değiştirilemiyor; yeni bir uygulama oluşturmak gerekiyor.
API’leri kullanmak için Play Oyun Hizmetleri SDK’sını üretim APK’nıza ekleyin chevron_right bunu nasıl yapıyoruz internette Play Oyun Hizmetleri SDK baktım ama bulamadım
https://developers.google.com/games/services/android/quickstart#step_3_modify_your_code
beni bu siteye yönlendirip duruyor nasıl yapıcağımı sdkyı nerden bulabilirim bulamadım
Bunu nerede ne için söylüyor?
https://www.hizliresim.com/ocaoq7f
bunu yaptım bi bu eksik ama anlamadım nasıl yapıcağımı internette de bulamadım veya anlamadım
Şu dokümantasyondaki tüm adımları takip etmendiysen ondan olabilir: https://github.com/playgameservices/play-games-plugin-for-unity
hepsini yapamam çokmuş neyse kalsın o zaman teşekkürler admin
Hocam merhabalar admob ile ilgili şöyle bir sorunum var. Oyunda bildiğiniz gibi Start a reklam isteği atmak için kodları yazıyoruz. Ben oyunumda kullanıcı yandığı zaman yani oyunu baştan başlatacağım zaman sahneyi baştan yüklüyorum bu da start kısmına yazdığımız kodu tekrar çalıştırıyor ve tekrar reklam isteği atıyor, yani kullanıcı 10 kere yeniden başlayıp 1 kere reklamı görüntüledi ise boşu boşuna 9 tane daha reklam isteği gitmiş oluyor ve istekler boş kalıyor bu da Google açısından sorun yaratıyor. Bunu çözmek için Dontdestroyonload komutunu kullandım bu reklam objesini sahne değişimlerinden koruyor fakat bu sefer de sahneyi tekrar yüklediği zaman sanırım önbellekten önceden yüklediği reklamı siliyor bu yüzden de göstermek istediğimde göstermiyor tekrar reklamı isteği atmam gerekiyor bu sefer de yine en baştaki soruna çıkıyor bunu nasıl çözebilirim?
DontDestroyOnLoad yapacaksanız, Start fonksiyonunda reklam script’inin instance’ı zaten var mı diye bakıp varsa Destroy ile mevcut objeyi yok etmeniz lazım. Yoksa her sahne yeniden başladığında sahnedeki reklam script’i sayısı da 1 artar. Singleton reklam script’imde bu sıkıntı olmamalı.
dediğiniz şeyi anladım öncelikle objeyi bu obje mi diye kontrol edip sonradan oluşan objeleri yok ediyoruz kısaca Singleton kullanıyoruz onda sorun yok fakat dediğim gibi sahne yeniden yüklendiği zaman yüklenen reklamlar önbellekten muhtemelen siliniyor çünkü reklamlar açılmıyor bunu çözemedim tekrar tekrar istek atıp reklamı yüklersem sorun yok fakat dediğim gibi bu sağlıklı bir yol değil.
Reklamlar sahneye bağlı değil. Siz reklamları bir yerde Destroy etmiyorsanız ve halihazırda reklam varken yeni reklam isteği ile mevcut reklamın üzerine yazmıyorsanız bu sorun olmaz. Dediğim gibi, singleton reklam script’imi inceleyebilirsiniz. Onda bu sorunun olduğunu sanmıyorum.
https://hizliresim.com/nfg24Z admin bu hatayı alıyorum bazı kullanıcılarımdan bende böyle bir hata yok ama nasıl çözebilirim minifity den r8 debug release yi açtım ondan olabilir mi
Bana sormadan önce google araması yapmanı öneririm. ‘your hardware does not support this application failed to load libmain.so unity’ şeklinde arama yapınca karşıma gelen şu linke göre, Unity’nin son sürümlerinde bu sorun düzeltilmiş.
https://developer.android.com/studio/build/shrink-code#native-crash-support bunu nereye koysam kabul etmedi hangi gradle.builde koyucağımı anlamadım gradle.properties e koydum olmadı yardım eder misin
Ben build’leri hep Unity’de alıyorum, Android Studio’da almıyorum. O yüzden Android Studio’da build adımları nasıl oluyor veya Gradle ayarları nereden nasıl yapılıyor bilmiyorum.
tmm admin sağol yine de
admin benim oyunda skor attığında müziğin hızlanmasını istiyorum bunu yapmanın yolu var mı
AudioSource’un pitch değişkenini artırarak sesi hızlandırabilirsin.
sa admin bir konuda yardımın gerek oyunumda internetin açık olup olmadığını kontrol ettirmek istiyorum diyelim butona basınca internet veya mobil veri açıksa reklam girsin değilse direk geçsin
Bunun için ücretsiz bir yöntem var mı bilmiyorum, varsa “unity3d check internet connection github” şeklinde arama yaparak bulabilirsin.
oyunuma reklam ekledigimden beri kasma başladı bunun nedenini nasıl bulabilirim 2. reklam verilmiyor henüz hesap doğrulanmadı diye bundan dolayı olabilir mi nasıl bulabilirim sorunu
https://yasirkula.com/2020/03/26/unity-profiler-kullanimi/
admin bi sorun var ben butona basıyorum geçiş reklamı 3-4 saniye sonra geliyor banner de 3sn sonra geliyor bunu nedenini nasıl bulabilirim ve nasıl çözebilirim
Nedenini nasıl bulabilirsin bilmiyorum ama reklamları oyunun başında yüklemiyorsan, butona basınca yüklüyorsan, reklamı internetten indirmesi vakit alıyor olabilir.
indirmeyi başlta yapıp yüklemeyi butona göre yapmayı nasıl sağlıyabilirim
AdMob dersimin “Gelişmiş Özellikler” başlığı altındaki örnek kodlarda öyle yapıyorum.
Sevgili Geliştiriciler, Aslan Oyun Studiosu’nda, Yakın zamanda yapılan bir incelemeden sonra, uygulamanız olan …(…) Uygulamanızın durumu ve sorunun nasıl düzeltileceği hakkında daha fazla bilgi için aşağıya bakın.
Yayın Durumu
Yayın durumu: Reddedildi
Uygulamanız Google Play’e kabul edilmedi. Bu, mevcut uygulamanızın Google Play’deki durumunu etkilemez
İhlal nedenleri
Sürümlere göre uygunluk sorunları
Sürüm (ler) Uygunluk Sorunu
App Bundle: 1 APK GEÇERLİ GİZLİLİK POLİTİKASI GEREKTİRİR
Uygulamanız, kullanıcıların Telefon Numarası bilgilerini, hem Play Developer Console’da belirtilen alanda hem de Play dağıtılmış uygulamasının içinden bir gizlilik politikası yayınlamadan Alipay SDK aracılığıyla yüklüyor.
Uygulama Paketi: 1
APK ÖNEMLİ AÇIKLAMA GEREKTİRİR
Uygulamanızın, önemli ifşa yönergelerini karşılamadan Telefon Numarası bilgilerinin toplanmasını kolaylaştıran Alipay SDK veya kitaplığı kullandığını belirledik. Gerekirse, daha fazla bilgi için SDK sağlayıcılarınıza danışabilir veya lütfen SDK sürümünü 15.5.5 veya üstüne yükseltebilirsiniz.
yardımcı olur musun admin
Gizlilik poliçesi oluşturup orada Alipay SDK’sinin topladığı telefon bilgilerini nasıl kullandığından bahsetmeniz lazım (belki Alipay SDK’sinin kendi gizlilik poliçesine link atmak da işe yarıyordur bilmiyorum). Ardından bu poliçenin linkini hem oyunun Google Play sayfasındaki gizlilik poliçesi (privacy policy) linki kısmına, hem de oyunun içindeki menülerden birine eklemeniz gerekiyor. Akabinde güncelleme atabilirsiniz.
teşekkürler admin bir şey daha sorucam çok soru sordum biliyorum ama alipay sdknin ne veri topladığını nasıl bulabilirim gizlilik politikası ücretsiz site kurarak orda yayinlasam olur mu
Alipay’in kendi privacy policy’sinde bulabilirsin. Kendi gizlilik politikanı ücretsiz siteye koyabilirsin.
admin image veya buton siteye yönelndirme yapsam olur mu politika ve image veya butona site yönlendirme nasıl yapılır
Bence siteye yönlendirme yapabilirsin. Bunun için Application.OpenURL kullanabilirsin.
Merhaba Google Play Geliştiricisi,
Amaç Yeniden Yönlendirme
Uygulamalarınız Intent Redirection’a karşı savunmasız.
Bu sorunu çözmek için bu Google Yardım Merkezi makalesindeki adımları izleyin.
Daha önce karşılaşmadığım bir hata, büyük ihtimalle kullandığınız plugin’lerden birinden kaynaklanıyor. “Unity Intent Redirection” araması yapmanızı öneririm.
admin unity de oyunu imzalayıp export ediyorum sonra android studio da düzenleme yapıyorum build de generate signed builde de aynı şekil imzalıyorum ama bu sürüm imzalanmamış hatası veriyor
Android Studio’da imzalamayı bilmiyorum.
buldum admin gerek kalmadı teşekkürler
sa admin bir şey sorucam butona bastıktan sonra reklam açılıyor reklamı kapattıktan sonra butonun işlevini yerine getirmesini nasıl sağlıyabilirim
Reklamın kapandığı event’te kodunu çalıştırman lazım. Hangi reklam servisini kullanıyorsan “unity blabla ad close event” diye aratman lazım.
admobu kullanıyom OnAdClosed bunu kullanmak istiyorum reklamı kapat tuşuna basınca sahne yüklemesi yapmasını istiyorum
“unity admob onadclosed event”. Örneğin: https://ads-developers.googleblog.com/2016/04/handling-android-ad-events-in-unity.html
sağol admin biraz geç de olsa anladım nerde hata yaptığım başını ağrıttım k.b. hakkını helal et
Estağfurullah, projende başarılar dilerim.
helal et de sorun kalmasın teşekkürler bu arada oyunu google playe yükledim reklamı hallediyorum şimdi
Helal olsun.
aynı reklam kimliğini 2 farklı yerde kullanabilir miyim yoksa 2si içinde ayrı ayrı mı olmalı mesala 1.butona bastığında gelen reklam kimliği ile 2.butona bastığında gelen reklam kimliği aynı olsa sorun olur mu yoksa değiştirmeli miyim
İkisi için ayrı ayrı analitik verileri görmek istiyorsan farklı yapabilirsin yoksa aynı olabilir.
https://hizliresim.com/BMWJGc
sa bu sorunları nasıl düzeltebilirim
Aleykümselam. İlk uyarı önemsiz duruyor. Diğerleri de oyunun çıkışını veya performansını etkilemez ama oyun çökerse, neden çöktüğünü bulmayı kolaylaştırır. Gerekli adımların ney olduğunu bilmiyorum ama “Daha Fazla Bilgi”den herhalde ne yapmanız gerektiğini bulabilirsiniz. İsterseniz gelen sayfaları İngilizce okuyup anahtar kelimeleri “unity” kelimesi ile birlikte google’da da arayabilirsiniz.
Hocam emeğinize sağlık.
Katkı olması için, şöyle bir yöntem de var:
Binlerce resmi png yapma, hepsinde boyut değiştirme, hepsine filtre ekleme vb vb. tüm senaryoları, PhotoShop’ta Action oluşturarak yapmak mümkün. 2-5-10 aşamalı bir işlem bile olsa, 1 defa yapılanları action olarak kaydedip, sonra klasör/alt-klasörlerindeki tüm dosyalara bu action’ı uygulayabiliyoruz.
Bazı Texture’larda alpha kanalının içeriği, RGB kanallarından çok farklı oluyor. Eğer Photoshop bu resimleri PNG’e çevirirken alpha kanalını herhangi bir şekilde bozmuyorsa bence de güzel bir yöntemmiş. “Save for Web” seçilirse oluşan PNG’lerin boyutu da eminim epey optimize olacaktır. Ama eğer Action’lar sadece belli uzantılara sahip resimleri png’e çevirmemize imkan vermiyorsa, yani jpeg gibi diğer uzantıları da png’e çeviriyorsa bu biraz sıkıntı olur.