Popüler Yayınımıza da Göz Atabilirsiniz
Unity null reference exception object reference Hatası Çözümü %100 Kesin
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Unity null reference exception object reference not set to an instance of an object hatası çözümü nasıl olur bu yayınımızdan bundan bahsedeceğiz.
İlk olarak hatayı daha iyi anlayıp nedeni kavrayacağız. Null reference hatası objeye herhangi bir değerin atanmadığını gösteriyor yani bir bakıma obje hiçbir şey taşımayan boş olarak görülüyor. Hiç değer taşımıyor. Bu yüzden de istediğimiz işlem yapılamıyor.
Mesela resimde gözüken hataya bakalım ve anlamaya çalışalım.
NullReferenceException: Object reference not set to an instance of an object
Tutorial.Die () (at Assets/Tutorial.cs:19)
Tutorial.Start () (at Assets/Tutorial.cs:11)
Burada sizinkilerde daha çok yazı olup karışık görünebilir. Asıl önemli olan siz kendi kullandığınız scripte ait olan satırları bulun . Zaten hepsi genelde alt alta oluyor. Geri kalanlar Unity'nin kendi scriptleri ve bizim işimiz yok.
Hatada Tutorial adlı scriptin 19. satırında Die fonksiyonunda ve 11.satırda Start fonksiyonunda problem olduğu belirtiliyor. Buradaki satır numaraları bizim için aşırı derecede önemli. Hatanın nerede olduğunu söylüyor ve inanılmaz bir kolaylık sağlıyor. Aksi takdirde hata çözmek aşırı zamanlar alırdı.
Koda bakalım.
Man man_ = fighter.GetComponent<Man>();
fighter objesinden Man scriptini almaya çalışıyoruz. Ya fighter objemiz boş ya da Man scriptimizi alamıyoruz.
1. fighter Nesnesi Boşsa
Zaten 8.satıra baktığımıza bir fighter oluşturulmuş ama değer tanımlanmamış yani hata verecektir bu nesne. Peki nasıl tanımlayacağız. Başına public ekleyerek bir Man nesnesini Inspector üzerinden atayabiliriz.
public GameObject fighter;
Ya da GetComponent ile değer atayabilir , başka scriptler üzerinden değer güncelleyebiliriz.
2. Man objesini alamıyorsa:
GetComponent şu mantıkta çalışır scripti hangi objeye atadıysanız o objede Man scriptini ara yani aynı objede.
Yorumlar
hocam sürekli NullReferenceException: Object reference not set to an instance of an object hatası alıyorum ama düzeltemiyorum :(
YanıtlaSilHocam Allah razı olsun sayenizde hatayı giderdim. Componenti çekeceğim script o objede yokmuş onu yerleştirdiğim gibi çözüldü
YanıtlaSil