2 tane komut dosyam var, 1'ii kaynak iken diğeri esas kodlarımı yazdığım yer.
İlk iş olarak ana dosyamdan diğer dosyama atıf yaptım.
C#:
public Uelke_Hususiyetleri UeH_AtfI;
Sonra da bu kodu yazdım.
C#:
public void MB_BasIldIghInda()
{
Menue_AtfI.SetActive(false); KamerayI_Ach(); // burada bir sorun yok.
Debug.Log($"Oyuncu ülkesi: {UeH_AtfI.uelkeler[1]}"); // hatayı aldığım yer.
}
Basitçe tuşa bastığımda listedeki 2. elemanı seçtiğimi bildirmek istiyorum kendime.
Her şeyi kuralı göre yaptığımı düşünüyorum, oyunu çalıştırmadan bir hata da almıyorum. Ama oyunu çalıştırıp tuşa bastığımda bu hatayı alıyorum "nullreferenceexception: Object reference not set to an instance of an object".
Uelke_hususiyetleri'ni de bir oyun cismine atadım ki içindeki kodlar oyun başladığı gibi çalışsın. Burada da onun kodları var:
C#:
public class Uelke_Hususiyetleri : MonoBehaviour.
{
public List<string> uelkeler = new List<string>();
void Start()
{
uelkeler.Add("Turuncu Ülke");
uelkeler.Add("Mavi Ülke");
uelkeler.Add("Yeşil Ülke");
}
}
Şimdiden teşekkür ederim.
Meseleyi çözdüm, sebebi atıf yapmak için yazdığım kodu tanımlamamammış. Şöyle ki:
C#:
public Uelke_Hususiyetleri UeH_AtfI;
yazınca kodu yazdığımız komut dosyasını atadığımız oyun cisminde şöyle bir panel oluşuyor:
burada none yazan yere tıklayıp atfı yaptığımız ilk komut dosyasının ekli olduğu oyun cismini seçmemiz gerekiyor:
Ancak böyle yapınca atıf gerçekleşmiş oluyor.