Подсчет баллов за тест

Добрый день. Создаю приложение. На данный момент все никак не могу понять как в процедуре Result посчитать значение переменной k задействовав при этом переменные из других процедур. Возможно есть способ вызова переменной именно из определенной процедуры. Буду благодарен за любую подсказку.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class test1 : MonoBehaviour
{
    public Text text1;
    public Text text2;
    public Text text3;
    public Text text4;
    public Text text5;
    public Text textk;
    bool click;
    public int k = 0;
    public int k0,k1,k2,k3,k4;
    // Start is called before the first frame update
   
    
    public void Button1_1()
    {
        text1.text = ("Неверно");
        k0 = 0;
    }
    public void Button1_2()
    {
        text1.text = ("Неверно");
        k0 = 0;
    }

        public void Button1_3()
        {
            text1.text = ("Верно");
            k0 = 1;
    }
    public void Button2_1()
    {
        text2.text = ("Неверно");
        k1 = 0;
    }
    public void Button2_2()
    {
        text2.text = ("Верно");
        k1 = 1;
    }

    public void Button2_3()
    {
        text2.text = ("Неверно");
        k1 = 0;
    }
    public void Button3_1()
    {
        text3.text = ("Верно");
        k2 = 1;
    }
    public void Button3_2()
    {
        text3.text = ("Неверно");
        k2 = 0;
    }

    public void Button3_3()
    {
        text3.text = ("Неверно");
        k2 = 0;
    }
    public void Button4_1()
    {
        text4.text = ("Неверно");
        k3 = 0;
    }
    public void Button4_2()
    {
        text4.text = ("Неверно");
        k3 = 0;
    }

    public void Button4_3()
    {
        text4.text = ("Верно");
        k3 = 1;
    }
    public void Button5_1()
    {
        text5.text = ("Верно");
        k4 = 1;
    }
    public void Button5_2()
    {
        text5.text = ("Неверно");
        k4 = 0;
    }

    public void Button5_3()
    {
        text5.text = ("Неверно");
        k4 = 0;
    }
    public void Result()
    {
        
        k = k + k0 + k1 + k2 + k3 +k4 ;

        string s = k.ToString();
        textk.text = s;
        
    }
}


Так а в чем проблема?
Они ж тут объявлены

и доступны везде.

Дело в том, что мне нужны именно результаты из Button1_1…Button5_3. Т.е., если ответ верный, то соответственно засчитывается 1 балл, и так 5 раз. В результате полученные баллы должны быть записаны в k, чтобы можно было отобразить на странице.

Так а в коде выше разве не так?

При нажатии кнопок в k0 и т.д. что-то присваивается, и раз это не локальные переменные, то они доступны тут

Ох, если бы все так было хорошо, переменные все равно остаются со значением 0. И, почему то, при нажатии даже на одну из кнопок-ответов (соответственно нужную) значение не присваивается. Там тоже нули остаются.

А нет, кнопку неправильную выбирал, но при расчете k не отображается, хотя возможно нужно просто в самом юнити присваивать что-то

а Result как вызывается?

Закинул на последнюю кнопку в сцене, которая должна в текстовый элемент записывать k

А этот скрипт существует в одном экземпляре на сцене или на несколько компонентов кинут?

Если второе, то как вариант быстрого исправления — сделать эти поля static.

    public static int k0,k1,k2,k3,k4;
1 лайк

Закидывал отдельно на каждую кнопку, сейчас тогда подправлю

Надо же, заработало. Огроменнейшее Вам спасибо, я уж думал, что с концами на этом этапе застрял.