Soru & Cevap

Unity c# İf Sonsuz Döngüye Giriyor. ...

11.07.2020 - 02:01


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{

    int kolaySeviye = 0;
    int ortaSeviye=1;
    int zorSeviye = 2;
    int gecerliSeviye = 0;
    // Start is called before the first frame update
    void Start()
    {
        
    }
    // Update is called once per frame
    void Update()
    {
        switch(gecerliSeviye)
        {
            case 0:
                Debug.Log("Kolay Seviye");
                break;
            case 1:
                Debug.Log("Orta Seviye");
                break;
            case 2:
                Debug.Log("Zor Seviye");
                break;
            default:
                Debug.Log("Seviye Seçilmedi");
                break;
        }

        if(Input.GetKeyDown(KeyCode.Space))
        {
            gecerliSeviye = Random.Range(0,3);
        }
        
    }
}
bu kodda sonsuz defa kolay seviye felan yazdırıyor

1 Neden

2 Nasıl Çözerim

34 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-41891-1577087103.jpg
okan-yesil
11.07.2020 - 11:07
 void Update()
    { 
      // burada 
        switch(gecerliSeviye)
        {
            case 0:
                Debug.Log("Kolay Seviye");
                break;
            case 1:
                Debug.Log("Orta Seviye");
                break;
            case 2:
                Debug.Log("Zor Seviye");
                break;
            default:
                Debug.Log("Seviye Seçilmedi");
                break;
        }

        if(Input.GetKeyDown(KeyCode.Space))
        {
            gecerliSeviye = Random.Range(0,3);
        }
        
    }

Burada yazdığım yerde geçerli seviyeyi değiştirmen gerekiyor 

Profile picture for user utku918
utku918
11.07.2020 - 07:37

Merhabalar, direkt olarak cevaplamak istiyorum. Nedeni, kolaySeviye ile gecerliSeviyenin değerlerinin başta 0 tanımlamanızdan dolayı switch(0) sürekli kolay seviyeye gidiyor. Çözüm olarak ise, basitçe seçim yapıldıktan sonra seçim değeri eğer ‘0’ ise gecerliSeviye=kolaySeviye gibi bir eşitlemeden sonra switch döngüsüne sokmanız olacaktır. Bir sorununuz olursa yardımcı olacağım yine, iyi günler..

 

 

İbrahim Talha DEMİR
11.07.2020 - 07:12
Hocam Örnek kod yazarak gösterebilir misiniz