Merhabalar,
Bir Unity projesinde birden çok kişi çalışıyorsanız, aynı asset’in projeye birden çok kez eklendiğine şahit olabilirsiniz. Bu da projenin boyutunun gereksiz yere büyümesine sebep olabilir. Projedeki hangi asset’lerin birbirinin klonu olduğunu bulabilmek için, basit bir editör script’i yazdım:

Yapmanız gereken, projenizin Editor klasöründe (bu klasör yoksa oluşturun) DuplicateAssetDetector adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/f96802da4cf6f5fbb0c76d8322463a88
Ardından Window-Duplicate Asset Detector ile Duplicate Assets penceresini açıp Refresh butonuna tıklayabilirsiniz. Burada dikkat etmeniz gereken 3 nokta var:
- Hangi asset’lerin birbirinin klonu olduğunu bulabilmek için, script her asset’in hash’ini çıkarıp bu hash’leri birbiri ile kıyaslıyor. Çok ender de olsa, farklı asset’lerde hash çakışması olabilir ve klon olmayan asset’ler klon gibi listelenebilir. İlaveten, script sadece hash’lere baktığı için, asset’lerin import ayarlarına bakmıyor. Bu duplicate asset’lerin import ayarlarını siz kendiniz kontrol etmeli ve hangi duplicate asset’lerin gereksiz olduğuna ona göre karar vermelisiniz.
- Listelenen konumlardan birine çift tıklarsanız, o konumdaki asset otomatik olarak seçilir.
- Duplicate asset’lerin önizlemelerinden birine tıklarsanız, o duplicate asset’lerin hepsi otomatik olarak seçilir.
Başka derslerde görüşmek üzere!
Selamun aleyküm hocam. Projemi Build and Run yapmaya çalıştığımda “Exception: Failed running C:\Program Files\Unity\Hub\Editor\2020.3.12f1\Editor\Data\il2cpp/build/BeeSettings/offline/bee.exe –useprebuiltbuildprogram –no-colors”
“Build completed with a result of ‘Failed’ in 57 seconds (57469 ms)
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun ()”
“UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x002ca] in :0
at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in :0
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun ()” hataları ile karşılaşıyorum. Ne yapabilirim?
Aldığınız tüm hata mesajlarını dikkatlice kontrol etmeniz lazım. Birisinde hatanın detayları yazar.
Anladım hocam sağolun.
(bu geçen yıl olan bir olay) Önceden bi asset kurmuştum sonra tekrar yanlışlıkla import dedim import paneli gelmişti cancel dememe rağmen proje boyutu baya şişmişti. Bunun sebebi ne olabilir acaba? (bu şimdi oldu) Şimdi de oyunumda hatayla bi prefabı sildim tekrar asseti import dedim sadece o prefab için ama acaba proje boyutu artmış mıdır bilmiyorum.
Örneğin diyelim boş proje açtık oraya bir asset import edip sonra silsek bile sanırım hala boyutu biraz artmış kalıyor projenin?
Bir asset’i import edip ardından import edilen her dosyayı silmenize rağmen proje klasörünün boyutu büyük gözüküyorsa, ya Temp ya da Library klasörünün boyutu artıyordur. Temp klasörü zaten projeyi kapatınca siliniyor. Library’i ise isterseniz elle silebilirsiniz ama bunu yapmak için bir sebep görmüyorum. Bu klasörlerin boyutunun artması, build alınan oyunun boyutunun artması anlamına gelmiyor.
Çok teşekkürler bayağı aklıma takılmıştı sağolun.
Hocam verdiğiniz cevaplar için çok minnettarım. Oyunum baya ilerlerdi. Birde arkadaşımın size bir sorusu var, Game Maker kullanıyor kendisi. Kayıt ve giriş sistemi yapmak istiyoruz. Örneğin altın ve tecrübe kazanımlarını oyuncular için kaydetmek istiyoruz bir nevi veri tabani gibi.
https://hizliresim.com/BqtR4p
https://hizliresim.com/NKb4Kp
Resim örneklerindeki gibi hocam bir nevi online oyun gibi diyelim. Bir kaynak yada bunun üstüne dersiniz var mı hocam acaba ?
Teşekkürler 🙂
Maalesef artık Game Maker kullanmayı bilmiyorum, son kullanmamın üzerinden çok uzun zaman geçti ve bu esnada Game Maker’la alakalı dokümanlara bakmayı da kestim. Bu konuda yardımcı olamayacağım.
Hocam merhabalar..
CS1503 2 bağımsız değişkeni: ‘yöntem grubu’ öğesinden ‘ServerHandleData.Packet’ öğesine dönüştürülemiyor 18 hatası alıyorum kodum aşağıda sizce sorun nedir ?
public delegate void Packet(int connectionID, byte[] data);
Hatayı aldığım satır :
packets.Add((int)ClientPackets.CMerhabaServer, DataReceiver.HandleMerhabaServer);
DataReceiver.HandleMerhabaServer’ın parametrelerinin int ve byte[] olmamasından kaynaklı gibi duruyor.
Hocam gene kapınızdayım . yüzdüm yüzdüm kuyruğuna geldim….
Her şey hazır login yapmaya çalışıyorum gameserverda böyle bir hata oluşuyor.
Unable to cast object of type ‘System.DBNull’ to type ‘System.Single’ ]
Giriş yapamıyorum, aynı zamanda bu hata yüzünden veritabanına kayıt işlemide göndermiyor ne yapmam lazım bir türlü çözemedim. Kullandığım game server numaan diye bir arkadaşa ait
Fotoğraf : https://hizliresim.com/VFcDSG
“OnReceiveData HATA”nın hangi satırdan çıktığını bulup orada hangi değeri (float)’a çevirmeye çalıştığınıza bakmalısınız. O satırda hata veriyordur. Ama bu hatanın kaynağını en iyi Numan tespit edebilir.
hocam size bir soru sormak istiyorum…
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class KameraKontrol : MonoBehaviour
{
public GameObject Sphere;
public float panSpeed = 20f;
public Vector2 panLimit;
Vector3 mesafe;
void Start()
{
mesafe=transform.position – Sphere.transform.position;
}
void Update()
{
Vector3 pos = transform.position;
if (Input.GetKey(“w”))
{
pos.z += panSpeed * Time.deltaTime;
}
if (Input.GetKey(“s”))
{
pos.z -= panSpeed * Time.deltaTime;
}
if (Input.GetKey(“d”))
{
pos.x += panSpeed * Time.deltaTime;
}
if (Input.GetKey(“a”))
{
pos.x -= panSpeed * Time.deltaTime;
}
pos.x = Mathf.Clamp(pos.x, -panLimit.x, panLimit.x);
pos.z = Mathf.Clamp(pos.z, -panLimit.y, panLimit.y);
transform.position = pos;
transform.position=Sphere.transform.position + mesafe;
}
}
BÖYLE BİR KODUM VAR KAMERANIN İÇİNE ATIYORUM KAMERAYI SORUNSUZ TAKİP EDİYOR LAKİN KAMERAYI TAKİP EDERKEN BEN W,A,S,D TUSLARI İLE HARİTAYI İNCELEYİP GEMİYİ KATİP EDEN KAMERAYA GERİ DÖNMEK İSTİYORUM. GERİ DÖNMEK İÇİNDE BİR BUTON VB. NESNE TANIMLAMAM LAZIM NASIL YAPARIM HOCAM KOD HATASIZ SUAN LAKİN W.A.S.D HAREKET ETMIYOR ( OYUN SEAFİGHT TARZI )
bool haritaModu = false;
oluşturun, WASD tuşlarına basınca bunu true yapın, haritayı gemiye geri odaklama tuşunuza basınca false yapın. Bu değişken true ise “transform.position=Sphere.transform.position + mesafe;” kodunuzu çalıştırmayın.hocam tam olarak anlayamadım kodu tamamlayıp atma şansın var mı acaba sizide uğraştırıyorum ama
private bool haritaModu = false;
void Update()
{
if(WASD basıldıysa)
haritaModu = true;
if(Gemiye geri dönmek için bir buton basıldıysa)
haritaModu = false;
if(!haritaModu)
transform.position=Sphere.transform.position + mesafe;
}
hocam tesekkur ederim çok birde son sorum olarak burada kafam çok karıstı. Photon 2 ile yazdığım için 2 kişi oyuna gşrşnce kameraların karısmaması için karakteri prefab alıp tikini kapatıp sahneden siliyorum. Oyuna girince klonlayıp 2 karakterde yan yana geliyor kameralar karışmıyor. Lakin kamerayı prefabın içine atıp kaydettiğim verdiğiniz kodları eksiksiz yazdım calısıypor. Ama ben kameranın gemiyi takip etmesini istiyorum. Gemiyi sağa sola çevirince kamerada sağa sola dönüyor kameranın sabit kalmasını nasıl sağlarım. Gemiyi takip edecek ama kamera sağa sola dönmeyecek gemi döndüğü zaman. Kamerayı karakterin içine attıgım için dönüyor eğer cıkartırsam oyuna girince kamera aktif olmuyor bu problemi nasıl cozebilirim
Kamerayı oyun başladığında karakterin içinden çıkarsanız? Yani mesela karakterin Start fonksiyonunda
kamera.transform.SetParent(null);
fonksiyonu ile. Ama sadece mevcut oyuncunun kamerasını dışarı çıkarmanız lazım, diğer oyuncularınkini değil.Hocam burası alakasız bir konu ama nerede soracağımı bulamadım. kusura bakmayın. Visual studioya Nuget Paket yöneticisi ile bir kütüphane indirdim ama bunu unity ile iliştiremiyorum unity aşağıdaki hatayı veriyor. Nasıl düzeltebilirim?
“”The type or namespace name could not be found. Are you missing a using directive or an assembly reference?””
Maalesef Nuget ile hiç uğraşım olmadığından bilemiyorum. Unity’de kullanmak için bir paket indirdiyseniz, Unity Nuget desteklemiyor olabilir.
Hocam alta attığım kısımda “Keycode.A” yerine unity arayüzünden UI buton eklemek istiyorum.Yani klavyeden girilen A tuşu yerine sahnedeki buton ile çalışacak. Nasıl yapabilirim?
var dirs = new[] { (x – 1, y, hwalls, x, y, Vector3.right, 90, KeyCode.A), };
O KeyCode’u Input.GetKey ile çağırıyor idiyseniz, onu SimpleInput.GetKey ile değiştirip SimpleInput plugin’imi projenize ekleyebilirsiniz: https://yasirkula.com/2017/07/19/unity-gelismis-input-sistemi-mobil-destekli/. Ardından UI butonunuza Key Input UI component’i ekleyip Key’ini A tuşu ile değiştirmeniz yeterli.
Merhaba,
Benim unityde bir haritam var fakat bu haritada çok fazla obje var çok detaylı ağaçlar, evler, yollar milyonlarca obje var bunlar aktif olarak kullanılmıyor sadece görüntü olarak kalacak. Bu kadar objeyi yaptım ama bu sefer bilgisayarım kasılıyor çok fazla obje yüzünden oyun yazılamaz hale geldi, unity kullanılamaz hale geldi donuyor büyük ihtimal build alıncada apk sıkıntılı olacak. Böyle durumlarda çözüm öneriniz nedir? Lütfen yardımınız lazım
LOD ve imposter teknikleri işinize yarayabilir. Açık dünya haritada Occlusion Culling çok işe yaramayabilir ama yine de deneyebilirsiniz. Onun haricinde optimizasyon dersime de bakabilirsiniz.
Merhaaba Yasir! Discord uzerinde hesab’in varmi ? Eger discord’a giriyorsan bi soyle cok sevinirim.
google playe oyun yüklemek için hesap açıyorun 25 dolar ödüyoruz ya bunun dolar olmasına gerek var mı yoksa hesaptan 25 dolara karşılık gelcek kadar tl mi çekiyor yardım edersen sevinirim
Dolara karşılık gelecek kadar TL çeker. TL kredi kartı ile yurtdışı alışverişlerinde, hangi kurdan alışveriş yaparsan yap o TL’ye çevrilip öyle kredi kartından düşülür.
kredi kartı yok banka kartı var fark eder mi
Banka kartı kabul ediyor mu bilmiyorum.
baktım banka kartı veya kredi kartı diyordu
https://imgyukle.com/i/HEgYRf
https://imgyukle.com/i/HEgaOG
settingsmanager.json dosyası yoksa default ayar olarak 100 nasıl yapabilirim ne yaparsam yapıyım hep 0 da başlıyor ben 100 den başlamasını istiyorum ben ayarlarsam orda sabit kalsın ama default ayarı 0 yerine %100 nasıl yapabilirim
Dosya var mı yok mu diye File.Exists fonksiyonu ile bakabilirsin. Eğer dosya yoksa değeri 100 yapabilirsin.
https://imgyukle.com/i/HVFllc böyle bir şey denedim olmadı nasıl yapıcam söyler misin
Aynen. Eğer deneme’nin değeri true ise de LoadSettings’i çağırabilirsin (LoadSettings için settingManaGer1.json dosyasının var olması gerekiyorsa).
[Adaptive Performance] No Provider was configured for use. Make sure you added at least one Provider in the Adaptive Performance Settings. UnityEngine.AdaptivePerformance.AdaptivePerformanceInitializer:Initialize () (at Library/PackageCache/com.unity.adaptiveperformance@2.0.2/Runtime/Core/AdaptivePerformanceInit.cs:51)
[Uyarlanabilir Performans] Kullanım için hiçbir Sağlayıcı yapılandırılmadı. Uyarlanabilir Performans Ayarlarına en az bir Sağlayıcı eklediğinizden emin olun. UnityEngine.AdaptivePerformance.AdaptivePerformanceInitializer: Initialize () (at Library/PackageCache/com.unity.adaptiveperformance@2.0.2/Runtime/Core/AdaptivePerformanceInit.cs: 51)
Değerli hocam uyarlanabilir performan sağlayıcı nasıl ekleyebilirim unity mobile
Kullanmadığım için bilmiyorum.
https://imgyukle.com/i/aDufwU
böyle de uyarılar var
doyo ikonunu seçip Inspector’dan Compression’ı None yapabilirsin.
sağolun hocam
https://imgyukle.com/i/aDhqov ıenumerator start içinde olduğu için bool false den true olunca çalışmıyor bunu kontrol update methodunda olduğu gibi her saniye kontrol ettirme şansım var mı true mu false mu diye
O while’ın içinde sadece yield return null; olmalı. Eskiden while’ın içinde olan kod ise while’ın dışında olmalı.
neyse o önemli değil de ben bir sahneyi yüklediğimde diğer sahneyi destroy edebilir miyin arka planda gereksiz yer tutmaması için
Evet zaten LoadScene’de parametre olarak LoadSceneMode.Additive kullanılmadığı sürece eski sahne yok oluyor.
anladım sağol
Merhaba Yasir bey, seviyeli bir zeka testi oyunum var, alt taraftaki 4 butonu bir panel içerisinde prefab yaptım ve her sahneye ekledim örneğin 1 den 50.sahneye kadar. Kullanıcı bir seviye atladığında Gecis isimli bir sahneye alınıyor ve daha sonra bir sonraki seviyeye geciliyor, buraya kadar sorun yok yalnız, ben bu alttaki buton prefablerinde linq işlemleri felan yapıyorum,butona dokunduğunda soruyla ilgili ipucuları gösteriyor felan, gecis ekranına gittiğimde benim bu prefablerin yok olmadığını fark ettim, OnlevelWasLoaded kullandım fayda etmedi, bir öneriniz varmı acaba? şimdiden teşekkür ederim.
DontDestroyOnLoad yapmadığınız sürece yok olur. Gördüğünüz şey yeni sahnedeki prefab’dır.
Aslında sorunu buldum, bu prefabin icerisinde reklam scripti var, video reklam bu. Her sahne degistiginde, 40,50 mb ram artiyor. Anlamis değilim çözümü de bulamadım. Muhtemelen her seviye arttiginda hafizada tutuyor ve yok etmiyor, ne yapabilirim bu konuda?
Eğer AdMob ise, AdMob dersimde reklamları Destroy ile yok etmekten özellikle bahsettim.
Hocam konuyla alakasız fakat nereye yazacağımı bilemedim kusura bakmayın. Bir sorum var bu resimde gördüğünüz gibi 2 adet panel var menü olarak kullanıyorum. Biri açılırken animasyonlu bir şekilde diğer panel tuşuna tıklarsam üst üste açılıyor. Acaba iki tuşa bastığımızda da üst üste açılabilirliğini nasıl engelleriz yani biri açılırken diğerinin butonuna basınca önceki işlem iptal olsun. Denedim birkaç şey fakat yapamadım. Umarım anlatabilmişimdir hocam.
A panelinin tuşuna basınca B panelini SetActive(false) yapsanız, B panelinin tuşuna basınca da A panelini SetActive(false) yapsanız olmaz mı? Objelerin hep aktif olması gerekiyorsa, A panelinin tuşuna basınca
BPaneli.GetComponent<Animator>().Play("PanelKapamaAnimasyonu",0,1f);
yapmayı deneyebilirsiniz.Sayın hocam ıenumeratorün içinde butona basılıp basılmadığını kontrol ettirmek mümkün mü
Butona basınca çağrılan bir fonksiyon, bir değişkeni true yapar. Coroutine’in içerisinde bu değer false olduğu sürece (
while(!degiskenDeger)
iken)yield return null;
çalışır.Değerli hocam android de ıenumerator kodu olan sahneye geçiş yapmıyor donuyor oyun durdu diyor mobile desteklemiyor mu bu kod ıenumerator de yükleme ekranı yapıyorum
IEnumerator’un oyunu çökerttiğini daha önce duymadım o yüzden bence IEnumerator’dan değildir.
ienumerator yüzünden olmuyor donuyor sahne yüklemiyor boş sahne oluşturdum denedim mobilde sahneyi yükleme ve geçiş yapmadı dondu kaldı arka planda yükleme yapmıyor starcourt start methodunda olunca geçmiyor butona yazıyorum gene butona basınca donuyor kalıyor ben yanlış bir şey mi yapıyorum bilmiyorum kodu atsam bi bakar mısın ienumeratorun
bide oyun 2d fark eder mi
Fark etmez. Oyundaki her sahnenin File-Build Settings’teki listeye ekli olması lazım belki onu unutmuşsundur. Aksi taktirde kodun ilgili kısmını buraya atabilirsin.
IEnumerator LoadScene()
{
AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(3);
asyncOperation.allowSceneActivation = false;
while(!btn)
{
yield return null;
}
while(btn)
{
asyncOperation.allowSceneActivation = true;
}
yield return null;
} sade yükleme sahnesini çıkardım onun dışında hepsi ekli
while(btn) satırı infinite loop’a sebep oluyor. Orada while’a gerek yok sanki, o while silinebilir.
https://hizliresim.com/SWnvL1
https://hizliresim.com/RAsOEo
böyle hata veriyor dondu oyun sahneden dolayı mı kodlardan dolayı mı neden olduğunu bulabileceğim bir yöntem var mı
Resim linkleri çalışmıyor. Kodun son halini merak ettim. Unity’nin neden donduğunu bulmanın kolay yolu var mı bilmiyorum. Belki Visual Studio ile Unity’i birbirine bağlayıp Unity donmadan hemen önce çalışan koda breakpoint koyup sonra adım adım kodun nereye gittiğini takip etmek işe yarar ama benim bu şekilde debug etme konusunda tecrübem yok.
https://imgyukle.com/i/aLdbE6
https://imgyukle.com/i/aLdMlx
peki internet te nasıl araştıramam lazım kodun nereye kadar çalıştığını bulmak için
Hata mesajı yeterince açık aslında: settingManaGer1.json dosyası bulunamadı diyor.
peki butona bastığımda nasıl true yapıcam ben
Sadece while satırı silinecek, içindeki asyncOperation kalacak.
build settingsteki bir ayar buna neden olabilir mi
Hayır bu Unity’nin bir hatası değil. Ya senin yazdığın bir kod ya da kullandığın bir plugin’deki bir kod settingManaGer1.json diye bir dosyaya erişmeye çalışıyor ama böyle bir dosya yok. Dosyanın olup olmadığını File.Exists ile kontrol edebilirsin.
mobile build edince öle oluyor o sorun değilmiş bana unity sahnesini denetleme şansım var mı neden çöktüğüne bulmama yardımcı olucak program veya başka bir şey
logcat log’larına bakmak dışında bilgim yok. Oyunu build alırken Development Build açık olursa log’lar daha çok bilgi verebilir. Bir başka yöntem de oyun crash olduğu esnada çalışan kodları satır satır comment’leyip hangi satırın oyunu crash’lettiğini bulmaya çalışmak.
test runner yaptım all test(s) succeeded diyor hata yok herşey sorunsuz diyor ama sıkıntı var nasıl bulucam artık
https://imgyukle.com/i/aOP68v hatalar bunlarmış
Test Runner için import ettiğin dosyaları silince bu düzelir.
Konuyla alakasız ama unity3d script arşivini düzenleyebilir misiniz? Gerçekten çok güzel kaynak ama düzenlerseniz daha iyi olacaktır. Javascript kodları var ve invokerepeat kodu yok, bunları yaparsanız daha iyi olacağına inanıyorum, teşekkürler.
Düzenledim teşekkürler.
Ben teşekkür ederim çok güzel işler yapıyorsunuz, bir de eliniz değmişken türkçe youtube kaynakları da düzenler misiniz:D Kapanmış kanallar ve en son 5 yıl önce video atmış kanallar var da, yani siz bilirsiniz tabii
Bazen kanalları kontrol edip kapanmış olanları listeden çıkarıyorum ama aktif olmayan kanalları genelde silmek yerine listenin altına taşıyorum.
https://hizliresim.com/v0G8fA
https://hizliresim.com/MLVV8q
Saygıdeğer hocam bunların çözümü var mı kardeşimin telefonunda bir sorun olmuyor benim telefonda bunlar çıkıyor benim telefon gm5 plus kardeşimin huwaei p30 lite
Daha önce denk gelmedim. “unity il2cpp null pointer dereference android crash” şeklinde arama yapmanı öneririm.
ramden olabilir mi benim 3 kardeşimin 4 gb rami var telefonda
“Null pointer dereference” bana RAM’i andırmadı, sanmıyorum. Belki Unity sürümünden de olabilir, ileriki Unity sürümlerinde hata çözülmüş olabilir. Ama öncelikle google’da yazanlara bakman lazım.
Sayın hocam oyunumda ana menude 3 buton var oyunu başlat,ayarlar,oyundan çık oyunu başlat deyince donuyor herşey sonra yükleme ekranına geçiyor bunu nasıl çözebilirim donma problemini
Bana aynı şeyi 3 kere sorarak boşuna vakit kaybediyorsun çünkü bilmediğim bir konuda yardımcı olamam. Hata mesajını google’da aratmalısın ve Unity sürümünü güncellemenin bir etkisi oluyor mu kontrol etmelisin.
sorunu buldum hocam 100 mb mp3 müzik vardı onu 18 mb düşürdüm sorun kalktı aynı hataya karşılaşan olursa söylersin projede mobilde yüksek mb şeyler kullanmasınlar