Soru Unity butona tıklayınca puan arttırıp ekranın kendisine verdirme

ColosusYEB

Öğrenci
Katılım
10 Şubat 2023
Mesajlar
55
Çözümler
1
Reaksiyon puanı
11
Puanları
8
Unityde butona tıklayınca onclick komutu üzerinden puan artışı ve bu puanı EKRANA(konsola değil) yansıtma nasıl oluyor açıklayabilecek var mı
 
Çözüm
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class basmaca : MonoBehaviour

{
    public TextMeshProUGUI apuaniText;
    public TextMeshProUGUI bpuaniText;

    private int apuani;
    private int bpuani;

    // Start is called before the first frame update
    void Start()
    {
        apuani = 0;
        bpuani = 0;
    }

    // Update is called once per frame
    void Update()
    {
    }

    public void Bastın() //basınca aşağıdaki değer değişimleri ekrana yansıyacak
    {
        apuani++;
        apuaniText.text = apuani + "";
        bpuani--;
        bpuaniText.text = bpuani + "";

    }
}
Denedim çalıştı, çık gir yaptım yine çalıştı. Fakat ben bunu tek tıkta -1 +1...

ColosusYEB

Öğrenci
Katılım
10 Şubat 2023
Mesajlar
55
Çözümler
1
Reaksiyon puanı
11
Puanları
8
Kodunuzu paylaşırmısınız?
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class butonscript : MonoBehaviour

{
    private int apuani;
    public Text apuaniText;
    private int bpuani;

    public Text bpuaniText;
    
    // Start is called before the first frame update
    void Start()
    {
        apuani = 0;
        bpuani = 0;
        
        apuaniText = GetComponent<Text>();
        bpuaniText = GetComponent<Text>();

    }

    // Update is called once per frame
    void Update()
    {
        apuaniText.text = apuani.ToString();
        bpuaniText.text = bpuani.ToString();
    }

    public void Bastın() //basınca aşağıdaki değer değişimleri ekrana yansıyacak
    {
        apuani -= 3;
        bpuani += 3;
    }
}

İki farklı değer oluşturdum o arada.
 
Son düzenleyen moderatör:

Emnn

Profesör
Emektar
Müdavim
Katılım
3 Mayıs 2021
Mesajlar
2,233
Çözümler
8
Reaksiyon puanı
1,940
Puanları
358
Tam olarak amacınız nedir?
Nrede sorun yaşıyorsunuz acaba?
 

ColosusYEB

Öğrenci
Katılım
10 Şubat 2023
Mesajlar
55
Çözümler
1
Reaksiyon puanı
11
Puanları
8
Amacım bir butona bastığımda ekrana yansıttığım skor değerlerinin(2 tane) aynı anda değişmesi. Sorunum şu ki ilk yaptığımda oluyor, fakat projeyi kaydettikten sonra kapatıp tekrar girince işlemiyor.
 

Emnn

Profesör
Emektar
Müdavim
Katılım
3 Mayıs 2021
Mesajlar
2,233
Çözümler
8
Reaksiyon puanı
1,940
Puanları
358
Scripts hangi GameObjecte bağlı?
Scripts de public olan değişkenler sürekli boşa mı düşüyor yeniden başlattığınızda?
 

ColosusYEB

Öğrenci
Katılım
10 Şubat 2023
Mesajlar
55
Çözümler
1
Reaksiyon puanı
11
Puanları
8
Scripts hangi GameObjecte bağlı?
Scripts de public olan değişkenler sürekli boşa mı düşüyor yeniden başlattığınızda?
Nereye bağlı olması gerekiyor?
Mesaj otomatik birleştirildi:

Scripts hangi GameObjecte bağlı?
Scripts de public olan değişkenler sürekli boşa mı düşüyor yeniden başlattığınızda?
Hem değer textlerine hem de emptye bağladım, emptyi de butona bağladım bastın voidini seçtim.
 
Son düzenleme:

Emnn

Profesör
Emektar
Müdavim
Katılım
3 Mayıs 2021
Mesajlar
2,233
Çözümler
8
Reaksiyon puanı
1,940
Puanları
358
Script her hangi bir gameObject'in compenent kısmında yer alması gerekir diye düşünüyorum.
TextMeshPro kullanmayı denediniz mi acaba?
 

ColosusYEB

Öğrenci
Katılım
10 Şubat 2023
Mesajlar
55
Çözümler
1
Reaksiyon puanı
11
Puanları
8
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class basmaca : MonoBehaviour

{
    public TextMeshProUGUI apuaniText;
    public TextMeshProUGUI bpuaniText;

    private int apuani;
    private int bpuani;

    // Start is called before the first frame update
    void Start()
    {
        apuani = 0;
        bpuani = 0;
    }

    // Update is called once per frame
    void Update()
    {
    }

    public void Bastın() //basınca aşağıdaki değer değişimleri ekrana yansıyacak
    {
        apuani++;
        apuaniText.text = apuani + "";
        bpuani--;
        bpuaniText.text = bpuani + "";

    }
}
Denedim çalıştı, çık gir yaptım yine çalıştı. Fakat ben bunu tek tıkta -1 +1 değil -30 +30 yapmak istiyorum onu nasıl yapacağım?

Düzenleme: Onu da halletim, klasik a = a + 30 yolunu kullanıyormuşuz.
Çık gir yapınca da oluyor. Teşekkür ederim.
 
Son düzenleme:
Çözüm

Emnn

Profesör
Emektar
Müdavim
Katılım
3 Mayıs 2021
Mesajlar
2,233
Çözümler
8
Reaksiyon puanı
1,940
Puanları
358
Çok ezbere yazdım Syntax hataları yapmış olabilirim. Uzun zamandır unity için kod yazmıyorum :D
C#:
public class basmaca : MonoBehaviour

{

    public TextMeshProUGUI apuaniText;

    public TextMeshProUGUI bpuaniText;



    public void Bastın() //basınca aşağıdaki değer değişimleri ekrana yansıyacak

    {

        apuaniText.text = int.Parse(apuaniText.text) + 30;

        bpuaniText.text = int.Parse(bpuaniText.text) - 30;

    }
}
 

ColosusYEB

Öğrenci
Katılım
10 Şubat 2023
Mesajlar
55
Çözümler
1
Reaksiyon puanı
11
Puanları
8
Çok ezbere yazdım Syntax hataları yapmış olabilirim. Uzun zamandır unity için kod yazmıyorum :D
C#:
public class basmaca : MonoBehaviour

{

    public TextMeshProUGUI apuaniText;

    public TextMeshProUGUI bpuaniText;



    public void Bastın() //basınca aşağıdaki değer değişimleri ekrana yansıyacak

    {

        apuaniText.text = int.Parse(apuaniText.text) + 30;

        bpuaniText.text = int.Parse(bpuaniText.text) - 30;

    }
}
Bu da olur teşekkür ederim.
 
Üst