Суббота, 23 Ноября 2024, 20:43

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
AlexandrBuryakovДата: Суббота, 23 Июня 2018, 23:46 | Сообщение # 1 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
О, интересно, спасибо! Только массивы или большинство объявленных переменных без явно присвоенных значений автоматически инициализируются значениями по умолчанию которое обычно равно нолю?
AlexandrBuryakovДата: Суббота, 23 Июня 2018, 14:19 | Сообщение # 2 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
Здравствуйте.
Возникла такая проблема:
1. Объявил:
Код
    private Vector3 [] aV = new Vector3 [ cellMax ]
    private Vector3 vectFirst;
    private Vector3 positionFirst;

2. Потом инициализация:
Код
    for ( int cell = 0 ; cell < cellMax ; cell++ ) {
   aV [ cell ] = new Vector3 ( 0, 0, 0 );
  }

3. Возникает проблема в цикле:
Код
    while ( cellFirst < cellMax ) {

   positionFirst = new Vector3 ( x++, y++, 0 );
   vectFirst = ( Vector3.zero - vectSecond );
   vectFirst = new Vector3 ( ( force * vectFirst.x ), ( force * vectFirst.y ), 0 );
   aV [ cellFirst ] += vectFirst * force;

   cellFirst++;
  }

Объявление других указанных переменных опустил.
Проблема вот в чём:
"positionFirst" меняется корректно.
"vectFirst" первый раз при каждой интерации меняется корректно.
"vectFirst" второй раз при каждой интерации НЕ меняется! blink
"aV [ cellFirst ]" НЕ меняется, даже если принудительно менять "vectFirst" перед этим! cranky
Как правильно менять "Vector3" ? <_<

Добавлено (23 Июня 2018, 14:19)
---------------------------------------------

Цитата AlexandrBuryakov ()
Как правильно менять "Vector3" ?

В общем проблемы и небыло, просто результат вычислений на столько мал, что округлялся до нуля сам! facepalm shy sleep ;) ^_^


Сообщение отредактировал AlexandrBuryakov - Суббота, 23 Июня 2018, 11:52
AlexandrBuryakovДата: Пятница, 22 Июня 2018, 00:32 | Сообщение # 3 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
Цитата drcrack ()
Debug.Log внутри цикла что ли? Она очень медленная, дело не в цикле, а в ней
Убери ее и будет выполняться за 0.01с

Спасибо! Так и есть. respect
AlexandrBuryakovДата: Пятница, 22 Июня 2018, 00:13 | Сообщение # 4 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
Здравствуйте.
Скажите пожалуйста, почему Unity так медленно выполняет цикл "for"?
Например, 7050 интераций выполняются примерно за 8,5 сек. blink Цикл пустой, разве что Debug.Log стоит со счётчиком интераций.
Другой вариант с 4 вложенными циклами друг в друга выполняется за 12 сек с лишним, %) количество интераций 6050.
Причём если внутри цикла есть куча вычислений с умножением, делением, работой с векторами и другими действиями, то это почти никак не влияет на скорость выполнения. :o
Такая длительность меня очень удивляет, потому что несколько лет программировал микроконтроллеры,
их частота всего 8Mhz (!не Ghz), то есть всего 8 000 000 тактов в секунду.
Так вот они за секунду в пустом цикле могут сделать 1 000 000 - 3 000 000 интераций. teehee
Что не так? Как увеличить скорость выполнения циклов? Комп должен 100 000 000 интераций без заиканий проглатывать и процессор не будет этим забиваться. help
  • Страница 1 из 1
  • 1
Поиск:

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