Страница 1 из 1

Проблемы с переменной bool

СообщениеДобавлено: 21 апр 2013, 18:50
yarikphoenix1990
Всем привет! Возможно мой вопрос и прост, но перерыв кучу сайтов я так и не нашел на него ответа (хотя скорее всего искал не там и не то...)

Проблема в следующем:
Синтаксис:
Используется csharp
        public bool f = true;
        public int n = 0;
                       
        void OnMouseEnter() {
                 Debug.Log (f);
               
                if (f = true) {
                n-=1;
                f = false;}
                               
                if (f = false) {
                n+=1;
                f = true;}
         }


При вхождении курсора в область объекта переменная f должна поменять значение на false а n уменьшиться на 1. При повторном вхождении, если f = false, переменная n должна наоборот увеличиться на 1. Но она этого не делает, и все время уменьшается :((

В логе после первого вхождения значение f - true, при всех последующих - false... Не вижу логики вообще, т.к. при false n должно увеличиваться, а продолжает уменьшаться :-s Посоветуйте хоть какое-то решение этой проблемы, я только начал программировать в Unity и не могу ничего поделать с этим :-??

Re: Проблемы с переменной bool

СообщениеДобавлено: 21 апр 2013, 18:55
BornFoRdeatH
(f = false)

Это какой оператор? Мне кажется присвоения. А вам какой нужен? Мне кажется сравнения.

Re: Проблемы с переменной bool

СообщениеДобавлено: 21 апр 2013, 19:02
yarikphoenix1990
Спасибо за быстрый ответ:)

Но теперь другая проблема...

Синтаксис:
Используется csharp
 public bool f = true;
        public int n = 0;
                       
        void OnMouseEnter() {
                 Debug.Log (f);
               
                if (f == true) {
                n-=1;
                f = false;}
                               
                if (f == false) {
                n+=1;
                f = true;}
         }


В логе f всегда true, а n не меняется вообще... я уже пробовал с оператором сравнения, но он вообще безрезультатен... с присвоением хоть какое-то движение было... Если это возможно, не могли бы вы пожалуйста более подробно описать мою ошибку?? Буду очень очень признателен:)

Re: Проблемы с переменной bool

СообщениеДобавлено: 21 апр 2013, 19:20
BornFoRdeatH
Ребята, ну где логика то? :D

Синтаксис:
Используется csharp
 f = false;
 if (f == false)


Синтаксис:
Используется csharp
f = !f;
if (f) {
n++;
} else {
n--;
}
 

Re: Проблемы с переменной bool

СообщениеДобавлено: 21 апр 2013, 20:09
yarikphoenix1990
Благодарю:)))) Вы открыли мне глаза:))) впредь постараюсь так не тупить..))

Re: Проблемы с переменной bool

СообщениеДобавлено: 21 апр 2013, 20:39
AMD
или если Вам надо, что бы только часть скрипта отработала пользоваться return

Синтаксис:
Используется csharp
                if (f == true) {
                n-=1;
                f = false;
                return;}
                               
                if (f == false) {
                n+=1;
                f = true;
                return;}
 

Re: Проблемы с переменной bool

СообщениеДобавлено: 22 апр 2013, 09:41
yarikphoenix1990
Благодарю:) до этой функции еще не дошел, но она однозначно понадобится:) Вы сэкономили мне немало времени:) Хотелось бы сказать, что я в долгу перед вами, но вряд ли смогу его вернуть в ближайшие пол года ;)