Пятница, 29 Марта 2024, 15:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » [РЕШЕНО] if (int в диапазоне чисел)
[РЕШЕНО] if (int в диапазоне чисел)
robertonoДата: Четверг, 15 Августа 2013, 23:38 | Сообщение # 1
Чокнутый Кот
Сейчас нет на сайте
есть 2 числа. 0 и 100.
Мне нужно через блок if выполнить действие если float angleRotation больше нуля и меньше 100.
Я сделал такой код :
Код

                   float angleRotation;
     angleRotation = cam.transform.eulerAngles.y;
     if(angleRotation >= N_min || angleRotation <= N_max)
      mode = "N";
     else if(angleRotation >= E_min || angleRotation <= E_max)
      mode = "E";
     else if(angleRotation >= S_min || angleRotation <= S_max)
      mode = "S";
     else if(angleRotation >= W_min || angleRotation <= W_max)
      mode = "W";

Вот переменные которые используются выше:
Код

    float N_min = 315.0f;
    float N_max = 44.9f;
    float E_min = 45.0f;
    float E_max = 134.9f;
    float S_min = 135.0f;
    float S_max = 224.9f;
    float W_min = 225.0f;
    float W_max = 314.9f;

Используется C# если что.
Но проблема в том что когда стартуется функция всегда mode становиться "W" без разницы какой градус поворота Y. Как исправить?


Сообщение отредактировал robertono - Суббота, 17 Августа 2013, 23:11
HackTrucachДата: Пятница, 16 Августа 2013, 00:03 | Сообщение # 2
участник
Сейчас нет на сайте
Как число может быть больше 315 и меньше 44?

Организатор флешмоба #100игрзанеделю
robertonoДата: Пятница, 16 Августа 2013, 00:07 | Сообщение # 3
Чокнутый Кот
Сейчас нет на сайте
HackTrucach, да это типо координаты, просто когда Mouse Look крутишь, то после 360 сразу 0 становиться.
И поэтому 315 - 0 - 44
seamanДата: Пятница, 16 Августа 2013, 01:00 | Сообщение # 4
старожил
Сейчас нет на сайте
Нужно: "больше нуля и меньше 100" А у Вас во всех проверках стоит или(||)
robertonoДата: Пятница, 16 Августа 2013, 01:04 | Сообщение # 5
Чокнутый Кот
Сейчас нет на сайте
seaman, знаю. Я это специально сделал. Расскажу позже зачем если не сработает это
Enumerable.Range
pelmenkaДата: Пятница, 16 Августа 2013, 01:19 | Сообщение # 6
Драгоценный Тунеядец
Сейчас нет на сайте
robertono, к чему эти тайны? Хочешь чтобы помоги - рассказывай, зачем накодил? wink

Сталина в каждый дом!
robertonoДата: Пятница, 16 Августа 2013, 01:27 | Сообщение # 7
Чокнутый Кот
Сейчас нет на сайте
Да всё я короче проблему решил, seaman был прав , дело в ||. smile
Вот код
Код

   float angleRotation;
   angleRotation = cam.transform.eulerAngles.y;
   if(angleRotation >= N_min && angleRotation <= 361 || angleRotation >= 0 && angleRotation <= N_max)
    mode = "N";
   else if(angleRotation >= E_min && angleRotation <= E_max)
    mode = "E";
   else if(angleRotation >= S_min && angleRotation <= S_max)
    mode = "S";
   else if(angleRotation >= W_min && angleRotation <= W_max)
    mode = "W";
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » [РЕШЕНО] if (int в диапазоне чисел)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг