Arkadaşlar küçük bir uygulama yapıyoruz çocuklar için toplama çıkarma çarpma bölme için.
Şimdi uygulamada örnek veriyorum 20 kare var ve soru soruluyor o kare içerisinden o cevap seçiliyor. Bölme işleminde bir sıkıntı yok. Fakat diğer işlemlerde karede sonuç olmayabiliyor, ayrıca sonuçlar eksi de çıkabiliyor bu konuda yardımcı olmanıza ihtiyacım var. Kodlar şu şekilde:

Alıntı
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
[SerializeField]
private GameObject karePrefab;

[SerializeField]
private Transform karelerPaneli;

[SerializeField]
private Text soruText;

private GameObject[] karelerDizisi = new GameObject[25];

[SerializeField]
private Transform soruPaneli;

[SerializeField]
private Sprite[] kareSprites;


List<int> bolumDegerleriListesi = new List<int>();

int bolunenSayi, bolenSayi;
int kacinciSoru;
int dogruSonuc;

int butonDegeri;

bool butonaBasilsinmi;

int kalanHak;

string sorununZorlukDerecesi;

KalanHaklarManager kalanHaklarManager;

PuanManager puanManager;

GameObject gecerliKare;

[SerializeField]
private GameObject sonucPaneli;

[SerializeField]
AudioSource audioSource;

public AudioClip butonSesi;

private void Awake()
{
kalanHak = 3;

audioSource = GetComponent<AudioSource>();

sonucPaneli.GetComponent<RectTransform>().localSca le = Vector3.zero;

kalanHaklarManager = Object.FindObjectOfType<KalanHaklarManager>();
puanManager = Object.FindObjectOfType<PuanManager>();



kalanHaklarManager.KalanHaklariKontrolEt(kalanHak) ;
}

void Start()
{


butonaBasilsinmi = false;

soruPaneli.GetComponent<RectTransform>().localScal e = Vector3.zero;

kareleriOlustur();
}

public void kareleriOlustur()
{
for (int i = 0; i < 25; i++)
{
GameObject kare = Instantiate(karePrefab, karelerPaneli);
kare.transform.GetChild(1).GetComponent<Image>().s prite = kareSprites[Random.Range(0, kareSprites.Length)];
kare.transform.GetComponent<Button>().onClick.AddL istener(() => ButonaBasildi());
karelerDizisi[i] = kare;

}
BolumDegerleriniTexteYazdir();

StartCoroutine(DoFadeRoutine());
Invoke("SoruPaneliniAc", 2f);
}

void ButonaBasildi()
{
if (butonaBasilsinmi)
{
audioSource.PlayOneShot(butonSesi);

butonDegeri = int.Parse(UnityEngine.EventSystems.EventSystem.cur rent.currentSelectedGameObject.transform.GetChild( 0).GetComponent<Text>().text);

gecerliKare = UnityEngine.EventSystems.EventSystem.current.curre ntSelectedGameObject;

SonucuKontrolEt();
}

}

void SonucuKontrolEt()
{
if (butonDegeri == dogruSonuc)
{
gecerliKare.transform.GetChild(1).GetComponent<Ima ge>().enabled = true;
gecerliKare.transform.GetChild(0).GetComponent<Tex t>().text = "";
gecerliKare.transform.GetComponent<Button>().inter actable = false;


puanManager.PuaniArtir(sorununZorlukDerecesi);

bolumDegerleriListesi.RemoveAt(kacinciSoru);

if(bolumDegerleriListesi.Count>0)
{
SoruPaneliniAc();
}
else
{
OyunBitti();
}


}
else
{
kalanHak--;
kalanHaklarManager.KalanHaklariKontrolEt(kalanHak) ;
}

if(kalanHak<=0)
{
OyunBitti();
}
}


void OyunBitti()
{
butonaBasilsinmi = false;
sonucPaneli.GetComponent<RectTransform>().DOScale( 1, 0.3f).SetEase(Ease.OutBack);
}
IEnumerator DoFadeRoutine()
{
foreach (var kare in karelerDizisi)
{
kare.GetComponent<CanvasGroup>().DOFade(1, 0.2f);

yield return new WaitForSeconds(0.07f);
}
}



void BolumDegerleriniTexteYazdir()
{


foreach (var kare in karelerDizisi)
{
int rastgeleDeger = Random.Range(1, 13);
bolumDegerleriListesi.Add(rastgeleDeger);

kare.transform.GetChild(0).GetComponent<Text>().te xt = rastgeleDeger.ToString();
}


}


void SoruPaneliniAc()
{
SoruyuSor();
butonaBasilsinmi = true;
soruPaneli.GetComponent<RectTransform>().DOScale(1 , 0.3f).SetEase(Ease.OutBack);
}


void SoruyuSor()
{
bolenSayi = Random.Range(2, 11);

kacinciSoru = Random.Range(0, bolumDegerleriListesi.Count);

dogruSonuc = bolumDegerleriListesi[kacinciSoru];

bolunenSayi = bolenSayi * dogruSonuc;

if (bolunenSayi <= 40)
{
sorununZorlukDerecesi = "kolay";
}
else if (bolunenSayi > 40 && bolunenSayi <= 80)
{
sorununZorlukDerecesi = "orta";
}
else
{
sorununZorlukDerecesi = "zor";
}


soruText.text = bolunenSayi.ToString() + " : " + bolenSayi.ToString();

}
public void GeriDon()
{
SceneManager.LoadScene("MenuLevel");
}
}