Unity Level Manager Nasıl Oluşturulur?

yigidyum

Kilopat
Katılım
24 Ağustos 2017
Mesajlar
2.258
Makaleler
1
Çözümler
5
Arkadaşlar merhaba. Unity'de labirent oyunu yapıyorum. Ve har çıkışa para koyup, karakter ona değdiğinde sonraki bölümün kilidi açılsın istiyorum. Şu anda bölümlere kilit koyamıyorum, ancak seçerek girilebiliyor. Ve alttaki resimdeki paraya değince sonraki bölüm açılsın istiyorum.
ldkasjf.PNG
Şu anda elimde bulunan kodlar bunlar bölüm seçimi için;
LevelControlScript.cs
LevelNumberScript.cs
MainManuControlScript.cs

Bu arada Main Menu kodun'da nereyi düzeltirsem Level Button ekleme hakkım artar? Şu anda 2 tane de. ( Bu kodu bir yerden bulmuştum)
kfsaş.PNG


@Predator Titan
 
Çözüm
Yanlış anlamanı istemezdim dostum, elbette yardımcı olacağım sadece sana öneri de bulunmak istedim. Sana adım adım ne yapacağını yazıyorum belki kafan karıştı ondan anlamadın.
1-Labirentin sonun da ki o para benzeri objene "kontrol" adın da bir script oluştur ve sürükleyip at.
2-kontrol kodunun içerisine ise;
Kod:
   LevelControlScript LSC;
   //LevelControlScript Hangi objenin içine atılmış ise, yani LevelControlScript nerede ise objeyi sürükleyip Paranin içine atın.
   public GameObject Para;
   void Start() {
   LSC= Para.GetComponent<LevelControlScript>();
   }
    void OnTriggerEnter(Collider c)
    {
        if (c.transform.root.tag == "Player")
        {
            LSC.youWin();
        }
    }
Bu kodu yaz ve kaydet.
3-Para yazan yere, LevelControlScript'in vardıya hani ilk yazdığın, konu başın da ki mesajın da gösterdiğin 3 tane script, işte onlardan biri olan LevelControlScript'in artık hangi objede ise o objeyi sürükleyip, Para kısmın da ki boş yere bırak.
4-Son bir sorum var, sen konunun en başında gösterdiğin şu 3 script'i kullanıyormusun ? Onları kullnamıyorsan hata verecek elbette, ama eğer LevelControlScript'i ve diğerlerini bir objeye attıysan, ayarlarını yaptıysan LevelControlScript'in atılı olduğu objeyi, labirentin sonun da ki yani kontrol kodunu attığın objende ki sağ tarafda bulunan inspector kısımından ki Para yerine sürükle.
5-Ayrıca karakterin, yani oyunun ana karakteri, senin kontrol ettiğin obje/oyuncu/karakter artık her ne ise onun adını sağ tarafında ki inspector kısmından Tag kısmına gelip orada ki Tag butonuna basıp listeden Player'i seç ve karakterin Tag'ini Player yap.
Kod:
   LevelControlScript LSC;
   //LevelControlScript Hangi objenin içine atılmış ise, yani LevelControlScript nerede ise objeyi sürükleyip Paranin içine atın.
   public GameObject Para;
   void Start() {
   LSC= Para.GetComponent<LevelControlScript>();
   }
    void OnTriggerEnter(Collider c)
    {
        if (c.transform.root.tag == "Player")
        {
            LevelControlScript.youWin();
        }
    }
}
Dostum, bak; dili bilmeden konuşmaya çalışıyorsun. Olmaz, sana önerdiğim o AçıkAkademi kaynağında bulunan C# derslerini bitir, Unity Dersler,ne geç Bu şekilde ezber ile olmaz. Temel mantığını kavraman lazım. İlk olarak dili öğren olur mu ?
Tamam öğrenmeye çalışıyorum zaten, ama şu an çok basit bir şey yapmak istiyorum. Bunu bari çok görmeyin ki öğreneyim değil mi? Sadece video izleyerek ya da okuyarak olmuyor, uygulamak da lazım :) Neyse bari verdiği son hataları da söyleyeyim, isterseniz yardımcı olursunuz.
tane.PNG

Bir tane obje oluşturdum içine de Level Control Script'i atıım.



sadfjasşdf.PNG

Daha sonra o objeye Manager ismini verip paranın içine attım. Yani anladığım buydu.

Ama yine aynı hatayı veriyor, + olarak şu da var;


aşdsflkjas.PNG


Ben de artık beklemekten sıkıldım. Bir oyun da yapıp tamamladım bu arada. (Stack benzeri) Bir de şu level açma olaylarını vb çözmek istedim, labirent oyunu yapayım dedim. Onu da beceremedim. Neyse sağlık olsun diyelim. Anlaşılan sorunu çözemeyeceğim.
 
Yanlış anlamanı istemezdim dostum, elbette yardımcı olacağım sadece sana öneri de bulunmak istedim. Sana adım adım ne yapacağını yazıyorum belki kafan karıştı ondan anlamadın.
1-Labirentin sonun da ki o para benzeri objene "kontrol" adın da bir script oluştur ve sürükleyip at.
2-kontrol kodunun içerisine ise;
Kod:
   LevelControlScript LSC;
   //LevelControlScript Hangi objenin içine atılmış ise, yani LevelControlScript nerede ise objeyi sürükleyip Paranin içine atın.
   public GameObject Para;
   void Start() {
   LSC= Para.GetComponent<LevelControlScript>();
   }
    void OnTriggerEnter(Collider c)
    {
        if (c.transform.root.tag == "Player")
        {
            LSC.youWin();
        }
    }
Bu kodu yaz ve kaydet.
3-Para yazan yere, LevelControlScript'in vardıya hani ilk yazdığın, konu başın da ki mesajın da gösterdiğin 3 tane script, işte onlardan biri olan LevelControlScript'in artık hangi objede ise o objeyi sürükleyip, Para kısmın da ki boş yere bırak.
4-Son bir sorum var, sen konunun en başında gösterdiğin şu 3 script'i kullanıyormusun ? Onları kullnamıyorsan hata verecek elbette, ama eğer LevelControlScript'i ve diğerlerini bir objeye attıysan, ayarlarını yaptıysan LevelControlScript'in atılı olduğu objeyi, labirentin sonun da ki yani kontrol kodunu attığın objende ki sağ tarafda bulunan inspector kısımından ki Para yerine sürükle.
5-Ayrıca karakterin, yani oyunun ana karakteri, senin kontrol ettiğin obje/oyuncu/karakter artık her ne ise onun adını sağ tarafında ki inspector kısmından Tag kısmına gelip orada ki Tag butonuna basıp listeden Player'i seç ve karakterin Tag'ini Player yap.
 
Çözüm
Sizin yaptığınızı yine beceremedim çok özür dilerim :( Ama şu videodakini becerdim. Artık sonraki evellere ışınlayabiliyorum. Ama mesela oyunu oynarken 4. bölümde kalsam tekrar 4. bölümden devam mı edecek oyun yeniden açtığımda?
 
PlayerPrefs denilen sistemi kullandıysan, evet kaydedecektir. Lakin şimdi pek de gerek yok. Ciddi ve gerçek bir işe başladığınız zaman baakbilirsiniz dediğim kod'a. Ayrıca özür dilenecek bir şey dostum, dediğim gibi dili öğrenmeye başla devamı gelecek.
 
PlayerPrefs denilen sistemi kullandıysan, evet kaydedecektir. Lakin şimdi pek de gerek yok. Ciddi ve gerçek bir işe başladığınız zaman baakbilirsiniz dediğim kod'a. Ayrıca özür dilenecek bir şey dostum, dediğim gibi dili öğrenmeye başla devamı gelecek.
Peki PlayerPrefs sistemi nasıl kullanılıyor? Onu da öğrenmek istiyorum da. Önerebileceğiniz öğretici video vs var mı? Ya da siz de anlatabilirsiniz.
 
Oldukça basit aslında.
Bir değişken yaratacaksınız en başta. int ya da string bu size kalmış.
örn;
public int deger=0;

void Start(){
deger= PlayerPrefs.GetInt("Buraya gireceğiniz kelime önemli, bundan sonra deger int'ini bu temsil edecek. Örneğin ben "Save" Diyeceğim");
}
void Update(){
deger++;
if(deger==100)
{
PlayerPrefs.SetInt("Save", deger);
}
}

Bu kadar, oyun başladıktan sonra hızla deger değişkeni artacak ve 100 olduğu zaman değeri kaydedeceğiz.
Kaynak için burası.
 
Oldukça basit aslında.
Bir değişken yaratacaksınız en başta. int ya da string bu size kalmış.
örn;
public int deger=0;

void Start(){
deger= PlayerPrefs.GetInt("Buraya gireceğiniz kelime önemli, bundan sonra deger int'ini bu temsil edecek. Örneğin ben "Save" Diyeceğim");
}
void Update(){
deger++;
if(deger==100)
{
PlayerPrefs.SetInt("Save", deger);
}
}

Bu kadar, oyun başladıktan sonra hızla deger değişkeni artacak ve 100 olduğu zaman değeri kaydedeceğiz.
Kaynak için burası.

hm.PNG

Yani o kodu yazıp karakterin içine atınca şöyle bir yer açılıyor değil mi? Oyunu başlatınca o değer durmadan artıyor. Zaten öyle olmalı değil mi? Bunu becerdim galiba :) Başka bir şey yapmak gerekiyor mu yoksa sadece o kodu yazıp player içine atmak yetiyor mu?
 
Eki Görüntüle 311913
Yani o kodu yazıp karakterin içine atınca şöyle bir yer açılıyor değil mi? Oyunu başlatınca o değer durmadan artıyor. Zaten öyle olmalı değil mi? Bunu becerdim galiba :) Başka bir şey yapmak gerekiyor mu yoksa sadece o kodu yazıp player içine atmak yetiyor mu?
Dostum bu sadece örnek ti :) Bu şuan ki projen için yazılmış bir kod değil sadece deneme amaçlı bir örnek idi.
 
Merhaba konu için biraz geç oldu sanırım.

Bölüm geçme ile ilgili bir sorununuz var sanırım.

Sizin için örnek Unity projesi oluşturdum umarım sorununuz çözülür.

Bölümler arası geçiş için izleyeceğiniz yolu resimle açıklamaya çalıştım.

anlatim1.gif


anlatim2.gif


Örnek proje için burdan erişebilirsiniz projeye bakarak projenize göre yapılandırıp eksikliklerinizi giderebilirsiniz.
Kolay gelsin.
 
Merhaba konu için biraz geç oldu sanırım.

Bölüm geçme ile ilgili bir sorununuz var sanırım.

Sizin için örnek Unity projesi oluşturdum umarım sorununuz çözülür.

Bölümler arası geçiş için izleyeceğiniz yolu resimle açıklamaya çalıştım.

Eki Görüntüle 312551

Eki Görüntüle 312552

Örnek proje için burdan erişebilirsiniz projeye bakarak projenize göre yapılandırıp eksikliklerinizi giderebilirsiniz.
Kolay gelsin.
Çok teşekkür ederim. Peki bölüm seçim menüsü nasıl yapabilirim? Mesela 1. bölüm hariç her bölüm kilitli olsun. 1.yi geçince 2., 2.yi geçince 3. bölüm açılsın. Ve bir bölüm seçim menüsünden açılan bölümlerden istenilen bölüm oynanabilsin. Ama kapalı bölümler oynanamasın. Anladınız siz işte :D
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı