3 / 3 / 1
Регистрация: 24.05.2015
Сообщений: 84
1

Почему не сохраняется значение переменной класса из метода?

11.11.2016, 18:51. Показов 1645. Ответов 2
Метки нет (Все метки)

Есть переменная count. Есть ситуация, в которой когда объект перетаскивается на назначенное поле на сцене и отпускается кнопка мыши, выполняется проверка что равны ли между собой трансформы объекта, который перетаскивали и поля (ячейки) и если да то переменная count увеличивается на 1.
Вот только не могу понять, почему если я это делаю в методе "OnMouseUp" да и в любом другом то переменная увеличивается, но когда метод заканчивает работу она обнуляется до первозданного вида. Видимо я что-то упускаю, даже не знаю что...

Код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public int count;
 
 void OnMouseUp()
    {
        _targetSquare = GameObject.FindWithTag("HoleSquare");
        _targetCircle = GameObject.FindWithTag("HoleCircle");
 
        if (transform.position == _targetSquare.transform.position || transform.position == _targetCircle.transform.position)
        {
            count++;
        }
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2016, 18:51
Ответы с готовыми решениями:

Получить значение переменной из метода другого класса
Всем привет! Помогите, пожалуйста, с небольшим вопросом. Вот простой код, состоящий из 3-х...

Почему не возвращается значение через указатель из метода класса?
Вот решил проверить поведение указателя в программе (я только учу C++), как оказалось после выхода...

Почему изменяется значение переменной между функциями класса?
Почему-то изменяется значение переменной m(кол-во специальностей) в output_spec. Пробовал в других...

Не сохраняется значение переменной
Нужна помощь. Не сохраняет данные переменных после функции,попробовал многое(от замены...

2
286 / 236 / 127
Регистрация: 24.12.2014
Сообщений: 707
16.11.2016, 08:47 2
Зачем вам вообще нужна переменная count?

Насколько я знаю, чтобы работал метод 'OnMouseUp', нужно чтобы 'gameObject' имел хоть какой-то коллайдер, иначе метод не будет вызываться, следовательно возможно по-этому переменная 'count' не увеличивается и кажется, будто она сбрасывается.
1
3 / 3 / 1
Регистрация: 24.05.2015
Сообщений: 84
16.11.2016, 17:49  [ТС] 3
Я проверял. Ставил Debug.Log(count) перед if и выбивало значение 0, затем после if и выбивало 1. Затем когда я перетаскивал в поле следующую фигуру все повторялось точно так же....А вообще то я сейчас может понял проблему. У меня скрипт на перетаскивание стоит на каждой фигуре. То беж для каждой фигуры создается свой count и по сему значение постоянно новые. Сейчас конечно проверить не могу, не дома, но надеюсь я прав, тогда сделать дебаг будет несложно

Добавлено через 7 часов 38 минут
Пусть ваш ответ не решил мою проблему явно, но косвенно повлиял на ее решение. Решил все так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
internal int count;  // кол-во очков
    internal string _text; // показатель очков UI
    internal GameObject _targetSquare;// ячейки куда нужно перетаскивать фигуры
    internal GameObject _targetCircle; //
    void OnMouseUp()
    {
        _targetSquare = GameObject.FindWithTag("HoleSquare");
        _targetCircle = GameObject.FindWithTag("HoleCircle");
        if (transform.position == _targetSquare.transform.position || transform.position == _targetCircle.transform.position)
        {
            _text = GameObject.Find("Canvas/Panel/Coins").GetComponent<Text>().text; // считываем текст с поля UI
            count = Convert.ToInt32(_text);
            count += 1; // + 1 очко
            GameObject.Find("Canvas/Panel/Coins").GetComponent<Text>().text = count.ToString();
            Destroy(gameObject); 
        }
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2016, 17:49

Передача значения переменной из метода одного класса в метод другого класса
Добрый вечер! Есть основная форма Form1 в которой есть метод private void button1_Click(object...

Не сохраняется значение в стринговой переменной
мне нужно сохранить значение из массива op1 в стринговую переменную op2 op2 =...

Не сохраняется значение переменной сеанса
Имеется условие: $_SESSION = $_POST; $_SESSION = $_POST; if ($_SESSION &amp;&amp; $_SESSION){ echo...

Что означает первый параметр метода этого класса? И почему при вызове метода передаётся один параметр(второй)?
public static HelpPageApiModel GetHelpPageApiModel(this HttpConfiguration config, string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.