Merhaba. Unity ile 2D bir oyun yapıyorum. Programı ilk defa kullandığım için bayağı zorlandım. Birçok şeyi yaptım ancak bölüm oluşturmada takılı kaldım. Bir bölümü bitirip diğerine nasıl geçebilirim?
Base Class oluşturup daha sonra Class üzerinde değişiklik yapmak isteyince yeni Scriptten ortak olmasını istemediğin yanlarını üzerine yazabilirsin. Bu örnekteki gibi mesela. (Örnek olarak her düşmanın canının olmasını istersin ama sadece bazılarının uçabilmesini istersin.)
Kod:
public class Hayvan
{ public virtual HareketEt() { debug.Print("Hayvan.HareketEt()");} }
public class Kus: Hayvan
{ public virtual override HareketEt() { debug.Print("Kus.HareketEt()"); }
Hayvan x = new Kus();
x.HareketEt(); // Ekrana "kus.HareketEt" yazsın.}
Öncelikle düşman için yazdığın Script, Oyun yöneticisi bir Scripte her ölümde toplam ölüm sayısını arttıran bir kod yollamalı. Toplam ölüm sayısı hedef ölüm sayısına ulaşınca yukarıdaki sahne yükleme kodunu çağırıp bir sonraki Level'e geçmelisin. (Yeni sahne oluşturacaksın. Başka bir seviye tasarlayacaksın. Sonra bu sahnenin adını çağıracaksın Load Scene koduyla.)
OyunYoneticisi isimli bir script oluştur ve içeriğine buradaki kodu yaz.
Aynı şekilde Dusman isimli bir script olustur ve yine Dusman yazan kodu yaz içine.
Sonra tüm düşmanlara Dusman scriptini ata.
En son olarak da OyunYoneticisi isimli bir Game Object oluştur.
Objeye tıkla ve OyunYoneticisi scriptini ekle.
Daha sonra bu objeye Tag ata ve OyunYoneticisi Tag'ini seç.
Kod:
using UnityEngine;
using UnityEngine.SceneManagement;
public class OyunYoneticisi : MonoBehaviour{
public int hedefOlum=100, mevcutOlum=0;
void Update(){
if(hedefOlum<=mevcutOlum){SceneManager.LoadScene("SahneAdı");}}}
Kod:
using UnityEngine;
public class Dusman : MonoBehaviour{
public int maxCan=100, mevcutCan=90;
public OyunYoneticisi oy;
void Start(){
oy = GameObject.FindWithTag("OyunYoneticisi").GetComponent<OyunYoneticisi>();}
void Update(){if(mevcutCan<=0){oy.mevcutOlum++;}}}
Belgenin içeriğini tamamen sil ve öyle yapıştır. İki defa sınıf ilan etmişsin. Script adlarınıda aynen yaz. Ö falan Türkçe karakter kullanma. Bu Scripti sil yeni oluştur. Çünkü kaydedince OyunYöneticisi adıyla kaydetmiş olacaksın ama kod OyunYoneticisi'ni arayacak. Classdan sonra yeşil yer iki noktaya kadar ne ise dosya adını aynısı.cs yapacaksın. (Mesela OyunYoneticisi.cs ya da Dusman.cs)