Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
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.
Soruları liste yapısından tutacaksın.
Her soru ekrana geldiğinde listeden o soruyu sileceksin.
Listede eleman sayısı sıfır ise "soru kalmadı" cevabını verecek.
Soruları liste yapısından tutacaksın.
Her soru ekrana geldiğinde listeden o soruyu sileceksin.
Listede eleman sayısı sıfır ise "soru kalmadı" cevabını verecek.
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.
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.