Unity'de bilgi yarışması oyunu yapamamak

Comolokko123

Hectopat
Katılım
9 Nisan 2021
Mesajlar
23
Daha fazla  
Cinsiyet
Erkek
Merhaba, ben Unity üzerinden bilgi yarışması benzeri bir oyun yapıyorum. 18 soru arasından rastgele bir soru gelsin, aynı soru bir daha gelmesin, ardından tüm sorular bitince soru kalmadı gibi bir yazı gelsin istiyorum. Biraz araştırdım fakat bir şey bulamadım, yardımcı olursanız sevirinim.
 
Örnek kod yazabilir misiniz?
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SoruGetir : MonoBehaviour
{
    TextMesh text;
    List<string> sorular = new List<string>();
    // Start is called before the first frame update
    void Start()
    {
        text = GameObject.Find("soru").GetComponent<TextMesh>();
      
        sorular.Add("Türkiyenin başkenti");
        sorular.Add("Nasa ne zaman kuruldu");
        sorular.Add("1 dolar kaç TL");
        sorular.Add("Fenarbahçe'nin ne kadar golü vardır");
        // İstediğin kadar böyle soru ekleyebilirsin;

        soruGetir();



    }


  
    bool tus;
    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown("w"))
        {

            soruGetir();
          
        }
    }

  


    void soruGetir()
    {
        if(sorular.Count == 0)
        {
            text.text = "Sorular kalmadı";
        }
        else
        {

            int rastgele = Random.Range(0, sorular.Count);
            text.text = sorular[rastgele];
            sorular.Remove(sorular[rastgele]);

        }
    }
}

Bu kod, "w" tuşuna bastığın zaman soru getir metodunu çalıştırır. Her seferinden sorular getirir ve soru kalmadığında ise "Soru kalmadı" şeklinde dönüş yapar.

Başlangıçta soruları elle yazdım ve listeye ekledim. Daha sonra soru game objesinin TextMesh componentine rastgele bir soru bağladım.

soruGetir adında bir metot yazdım, listede soru varsa, rastgele soru getirir, "soru" nesnesine bağlar ve o soruyu listeden siler.

"soru" adlı nesneyi ben sahnede tanımladım. TextMesh componenti var. Böyle bir yöntem kullandım yani. Sen de başka yöntemlerle (örneğin sürükle bırak şeklinde yada bu scripti component olarak soru objesine ekleyerek) bir şekilde bu objeye C# ile erişmen gerekir.
 
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SoruGetir : MonoBehaviour.
{
 TextMesh text;
 List<string> sorular = new List<string>();
 // Start is called before the first frame update.
 void Start()
 {
 text = GameObject.Find("soru").GetComponent<TextMesh>();

 sorular.Add("Türkiyenin başkenti");
 sorular.Add("Nasa ne zaman kuruldu");
 sorular.Add("1 dolar kaç TL");
 sorular.Add("Fenarbahçe'nin ne kadar golü vardır");
 // İstediğin kadar böyle soru ekleyebilirsin;

 soruGetir();

 }

 bool tus;
 // Update is called once per frame.
 void Update()
 {
 if(Input.GetKeyDown("w"))
 {

 soruGetir();

 }
 }

 void soruGetir()
 {
 if(sorular.Count == 0)
 {
 text.text = "Sorular kalmadı";
 }
 else.
 {

 int rastgele = Random.Range(0, sorular.Count);
 text.text = sorular[rastgele];
 sorular.Remove(sorular[rastgele]);

 }
 }
}

Bu kod, "W" tuşuna bastığın zaman soru getir metodunu çalıştırır. Her seferinden sorular getirir ve soru kalmadığında ise "soru kalmadı" şeklinde dönüş yapar.

Başlangıçta soruları elle yazdım ve listeye ekledim. Daha sonra soru Game objesinin textmesh componentine rastgele bir soru bağladım.

Sorugetir adında bir metot yazdım, listede soru varsa, rastgele soru getirir, "soru" nesnesine bağlar ve o soruyu listeden siler.

"Soru" adlı nesneyi ben sahnede tanımladım. Textmesh componenti var. Böyle bir yöntem kullandım yani. Sen de başka yöntemlerle (örneğin sürükle bırak şeklinde ya da bu scripti component olarak soru objesine ekleyerek) bir şekilde bu objeye C# ile erişmen gerekir.

Çok teşekkürler.
 

Technopat Haberler

Yeni konular

Geri
Yukarı