cagatay_kilinc_01
Hectopat
- Katılım
- 4 Mayıs 2021
- Mesajlar
- 16
Daha fazla
- Cinsiyet
- Erkek
using System.Collections;Kodu tahmin mi etmem gerekiyor? Kodu da paylaşır mısın?
sorun bu kısımda :using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
using System.Threading;
public class Test : MonoBehaviour
{
[Header("Sorular")]
[SerializeField] TextMeshProUGUI sorumetni;
[SerializeField] Soru soru;
[Header("Cevaplar")]
[SerializeField] GameObject[] cevapdugmeleri;
int dogrucevapindeksi;
[Header("Buton Renkleri")]
[SerializeField] Sprite varsayilanCevapSprite;
[SerializeField] Sprite dogruCevapSprite;
[Header("Zamanlayıcı")]
[SerializeField] Image zamanlayiciresmi;
Timer timer;
public void Start()
{
timer = FindObjectOfType<Timer>();
sonrakisoruyugetir();
//EkranSorusu();
}
public void Update()
{
zamanlayiciresmi.fillAmount = timer.
}
public void cevapseciliyken(int index)
{
Image butonresmi;
if(index == soru.GetDogrucevapindeksi())
{
sorumetni.text = "Doğru!";
butonresmi = cevapdugmeleri[index].GetComponent<Image>();
butonresmi.sprite = dogruCevapSprite;
}else
{
dogrucevapindeksi = soru.GetDogrucevapindeksi();
string dogrucevap = soru.GetCevap(dogrucevapindeksi);
sorumetni.text =" Üzgünüm, dogru cevap;\n " + dogrucevap;
butonresmi = cevapdugmeleri[dogrucevapindeksi].GetComponent<Image>();
butonresmi.sprite = dogruCevapSprite;
}
dugmedurumunuayarla(false);
}
void sonrakisoruyugetir()
{
dugmedurumunuayarla(true);
varsayilanbutonSprites();
EkranSorusu();
}
void EkranSorusu()
{
sorumetni.text = soru.GetQuestion();
for(int i = 0;i < cevapdugmeleri.Length; i++)
{
TextMeshProUGUI testbutonu = cevapdugmeleri.GetComponentInChildren<TextMeshProUGUI>();
testbutonu.text = soru.GetCevap(i);
}
}
void dugmedurumunuayarla(bool state)
{
for(int i = 0;i < cevapdugmeleri.Length; i++)
{
Button buton = cevapdugmeleri.GetComponent<Button>();
buton.interactable = state;
}
}
void varsayilanbutonSprites()
{
for(int i = 0;i < cevapdugmeleri.Length; i++)
{
Image butonresmi = cevapdugmeleri.GetComponent<Image>();
butonresmi.sprite = varsayilanCevapSprite;
}
}
}
Neden FindObjectOfType kullanıyorsun? Timer'ı global olarak oluşturmuşsun zaten. Ek olarak bu kullanım desteklenmiyor. UnityEngine.Object değil ki Timer. C#'ın kendisine ait.timer = FindObjectOfType<Timer>();
kursdaki hoca öyle kullanıyordu ondan öyle yazdım.Sosyal'de nasıl kod paylaşılır?
Eğer kodu fotoğraftaki kısma tıklayıp açılacak pencereye yapıştırırsanız çok daha anlaşılır olacaktır. Sorununuzun çözülmesi ümidiyle. İyi forumlar :)www.technopat.net
Bir dahaki sefere kodu kod olarak paylaş.
Neden FindObjectOfType kullanıyorsun? Timer'ı global olarak oluşturmuşsun zaten. Ek olarak bu kullanım desteklenmiyor. UnityEngine.Object değil ki Timer. C#'ın kendisine ait.
Kurs içeriğini bilmiyorum ama casting dene bakalım. Satırı şöyle güncelle;kursdaki hoca öyle kullanıyordu ondan öyle yazdım.
timer = (Timer)FindObjectOfType<Timer>();
denedim olmadı reisKurs içeriğini bilmiyorum ama casting dene bakalım. Satırı şöyle güncelle;
C#:timer = (Timer)FindObjectOfType<Timer>();
'Timer' bir 'kesriDoldur' tanımı içermiyor ve 'Timer' türünde bir ilk bağımsız değişken kabul eden hiçbir erişilebilir 'kesriDoldur' genişletme yöntemi bulunamadı (bir kullanma yönergeniz veya derleme başvurunuz eksik olabilir mi?)CS1061 bide şu kodda böyle bir hata çıkıyor kod:denedim olmadı reis
zamanlayiciresmi.fillAmount = zamanlayici.kesriDoldur;
Biraz baktım da, net bir çözüm bulamadım. Timer dışarıdan mı gelecek? O yüzden mi buna ihtiyacın var? Timer için bir wrapper sen yazmayi düşünebilirsin? En azından Unity objecte dönüşür. Kurs içeriğini de bilmiyorum ki. Tahmin üzere yanıtlıyorum şu an.
Filled tipi zamanlayıcım var onu scriptteki timer aracılığıyla bağlantısını kurup çalışır hale getirmeye çalışıyorum. Diğer ayarlarını yaptım bir bu kaldı bunu da yapsam geriye ne kadar soru kaldığını gösteren progress barım var onu yapacağım.
Filled tip zamanlayıcının type'ına göre oluşturman lazım scripttede timer'ı. Proje dosyalarını atarsan bir ara indirip bakarım. Unity kurulu değil bilgisayarımda. Bilmiyorum typelar neler vs.Filled tipi zamanlayıcım var onu scriptteki timer aracılığıyla bağlantısını kurup çalışır hale getirmeye çalışıyorum. Diğer ayarlarını yaptım bir bu kaldı bunu da yapsam geriye ne kadar soru kaldığını gösteren progress barım var onu yapacağım.