2016-02-24 5 views
0

Я объявила переменную с именем RandomX и RandomY. Я использую случайную функцию генератора для возврата случайного числа от -1 до 1. Затем я использую оператор if для проверки числа, которое сгенерировано. Если число сгенерированное (RandomX или RandomY) меньше -0.4, тогда я хочу установить переменную motionX равным -1. Если число больше 0,4, я должен был установить переменное движение X равным 1. Если ни одно из них не является истинным, я хочу установить значение 0.Единство C#: как установить целое число на отрицательное число внутри оператора if

Вот что у меня есть, но по какой-либо причине, если это число меньше, чем -0.4 вместо него, устанавливая число до -1, он устанавливает число в 0. Что мне не хватает?

float randomX = Random.Range (-1f,1f); 

if (randomX < -0.4) 
{ 
    movementX = (-1); 
} 
if (randomX > 0.4) 
{ 
    movementX = movementX * -1; 
} 
else 
{ 
    movementX = 0; 
} 

randomY = Random.Range (-1f,1f); 

Debug.Log (randomY); 
if (randomY < -0.4) 
{ 
    movementY = -1; 
} 
if (randomY > 0.4) 
{ 
    movementY = 1; 
} 
else 
{ 
    movementY = 0; 
} 
+0

Что должно произойти, когда ваш вклад между -0.4 и 0.4? Shell остается неизменной? – HimBromBeere

ответ

3

Проблема здесь.

if (randomX < -0.4) 
{ 
    movementX = -1; 
} 

Здесь вы назначаете -1 если условие подходит. Однако после этого вы сделаете это:

if (randomX > 0.4) 
{ 
    movementX = movementX * -1; 
} 
else 
{ 
    movementX = 0; 
} 

, который будет проверять, если новое значение меньше 0.4, который он, по-видимому сейчас. Кроме того, когда ваш ввод больше 0,4, он должен вернуться 1, если я правильно вас пойму.

Написать вместо этого:

if (randomX < -0.4) 
{ 
    movementX = -1; 
} 
else if (randomX > 0.4) 
{ 
    movementX = 1; 
} 
else 
{ 
    movementX = 0; 
} 
+0

Это сработало для меня. Мне пришлось изменить одну часть кода. Else if (randomX> 0.4) {движениеX = движениеX * -1; } необходимо было изменить только на движениеX = -1. Способ, которым вы его устанавливали, устанавливал движение X в -1, если randomX был больше 0,4 и если он был меньше 0,4. Спасибо, что поставили меня на правильный путь! –

+0

Я уже предполагал это, но вы не упомянули об этом вообще в своем вопросе, поэтому я не мог этого гарантировать и остался на том, что вы написали в своем коде. – HimBromBeere

+0

Посмотрите мое обновление, вы также забыли установить свой результат в 1, если ваш вход больше 0.4, я соответствующим образом изменил его. – HimBromBeere

 Смежные вопросы

  • Нет связанных вопросов^_^