Падение ФПС из-за скрипта турели)=

Программирование на Юнити.

Re: Падение ФПС из-за скрипта турели)=

Сообщение Syberex 13 июн 2012, 15:03

DDDENISSS писал(а):Что-то я не понял как FixedUpdate мог помочь? Ведь он чаще вызывается.

Как чаще, если Update это обновление каждый кадр, а FixedUpdate фиксированное число раз, в справке ясно сказано - в FixedUpdate следует делать все сложные и медленные вычисления.
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Падение ФПС из-за скрипта турели)=

Сообщение DDDENISSS 13 июн 2012, 15:46

Update вызывается перед каждым кадром? Тогда 30-60 раз в секунду. А FixedUpdate 100 раз в секунду.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Падение ФПС из-за скрипта турели)=

Сообщение waruiyume 13 июн 2012, 16:05

Syberex писал(а):...в справке ясно сказано...

Пруф, может там о взаимодействии с физ. объектами?
Fps 60- Update вызывается каждые 0,0166666666666667 сек, это в 1,19 раз чаще FixedUpdate(по умолчанию).
Fps 35 (обычное ведь дело?)- Update вызывается каждые 0,0285714285714286 сек.(FixedUpdate 0,02)
ИМХО: Корутина или таймер в апдейте, для подобных вещей- намного эффективней.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Падение ФПС из-за скрипта турели)=

Сообщение Syberex 14 июн 2012, 10:32

Да, точно, там про rigidbody :|

waruiyume писал(а):Fps 35 (обычное ведь дело?)- Update вызывается каждые 0,0285714285714286 сек.(FixedUpdate 0,02)

А как для FixedUpdate рассчитали 0,02?
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Падение ФПС из-за скрипта турели)=

Сообщение waruiyume 14 июн 2012, 10:46

Никак, он выставляется, а 0,02- значение по умолчанию (Time Manager->Fixed Timestep)
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Падение ФПС из-за скрипта турели)=

Сообщение Syberex 14 июн 2012, 11:42

Понятно, спасибо, что просветили ^:)^
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Падение ФПС из-за скрипта турели)=

Сообщение BANNERTM 14 июн 2012, 19:53

DDDENISSS писал(а):Physics.OverlapSphere возвращает объекты описывающие боксы, которых попали в сферу. Это будет максимально быстро.
Ближайший объект из них найти уже просто.

Все равно лаги при большом количестве целей и пушек! Помогите пожалуйста кто-нибудь! Неужели не возможно создать RTS на unity???
Есть ли готовые скрипты ?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Падение ФПС из-за скрипта турели)=

Сообщение Syberex 14 июн 2012, 20:46

Да дело тут не в Юнити. А другие RTS думаешь все на специально заточенных под RTS движках делались? :) Нет ... Значит, не в Юньке дело, а в
[curved_hands]
А значит нужно изучать тему, искать новые решения для себя, более оптимальные и продуманные алгоритмы ...

Например для начала предложу такой вариант для оптимизации выбора видимых объектов: разбить карту на квадраты, для каждого юнита всегда должен быть определен квадрат в котором он находится, тогда можно будет по простому условию отбрасывать большую часть объектов.
Но и этого может быть не достаточно!
Тогда можно сделать объекты менеджеры, которые будут содержать всегда актуальный список юнитов в данном квадрате ...
Для мобильников наверно обязательно будет сократить число юнитов одновременно ищущих цель, выделить это в корутины, как уже советовали и пусть юниты записываются в очередь на поиск цели ...
А дальше, можно использовать другие пути сокращения вычислений, быстрый выбор цели юнитом, того юнита, которым он был атакован, взять туже цель что и у соседа и тд :)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Падение ФПС из-за скрипта турели)=

Сообщение Syberex 14 июн 2012, 20:50

А сколько примерно юнитов в сцене? :-?
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Падение ФПС из-за скрипта турели)=

Сообщение BANNERTM 14 июн 2012, 20:57

Syberex писал(а):Да дело тут не в Юнити. А другие RTS думаешь все на специально заточенных под RTS движках делались? :) Нет ... Значит, не в Юньке дело, а в
[curved_hands]
А значит нужно изучать тему, искать новые решения для себя, более оптимальные и продуманные алгоритмы ...

Например для начала предложу такой вариант для оптимизации выбора видимых объектов: разбить карту на квадраты, для каждого юнита всегда должен быть определен квадрат в котором он находится, тогда можно будет по простому условию отбрасывать большую часть объектов.
Но и этого может быть не достаточно!
Тогда можно сделать объекты менеджеры, которые будут содержать всегда актуальный список юнитов в данном квадрате ...
Для мобильников наверно обязательно будет сократить число юнитов одновременно ищущих цель, выделить это в корутины, как уже советовали и пусть юниты записываются в очередь на поиск цели ...
А дальше, можно использовать другие пути сокращения вычислений, быстрый выбор цели юнитом, того юнита, которым он был атакован, взять туже цель что и у соседа и тд :)


??? как записать юнитов в очередь на поиск целей?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Падение ФПС из-за скрипта турели)=

Сообщение Syberex 14 июн 2012, 21:30

Ну для начала вот
MSDN - Queue<T> Class
Руководство по C# --- Очередь: классы Queue и Queue<T>

Потом сделать объект менеджер, который будет принимать юнитов в очередь и отдавать их корутине из очереди ... корутина после нахождения цели, будет устанаваивать цель юниту (свойство target класса Unit), после чего юнит поймет, что пора действовать [nuklear]
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Падение ФПС из-за скрипта турели)=

Сообщение DDDENISSS 14 июн 2012, 23:37

Все равно лаги при большом количестве целей и пушек!

Сколько у тебя пушек и других объектов?
С помощью layerMask попробуй оптимизировать. Т.е. проверяй только нужные тебе слои.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Падение ФПС из-за скрипта турели)=

Сообщение Jakobs 15 июн 2012, 11:53

сделай так чтоб тюрелька искала цели только тогда когда они в тригере и только в том случаи если у тюрели нет выбранной цели, также советую чтоб не тюрель искала цель, а сама цель кричала тюрели "Стреляй в меня", тогда тюрель не нуждается в обработки большого количества целей

сам шяс маюсь с такой хренью, но вроде 2000 целей держит при 180 фпс, я не думаю что больше нада
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

Re: Падение ФПС из-за скрипта турели)=

Сообщение BANNERTM 13 июл 2012, 15:30

Jakobs писал(а):сделай так чтоб тюрелька искала цели только тогда когда они в тригере и только в том случаи если у тюрели нет выбранной цели, также советую чтоб не тюрель искала цель, а сама цель кричала тюрели "Стреляй в меня", тогда тюрель не нуждается в обработки большого количества целей

сам шяс маюсь с такой хренью, но вроде 2000 целей держит при 180 фпс, я не думаю что больше нада


А сколько у вас пушек при 2000 целях? можно кусок кода увидеть?
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Re: Падение ФПС из-за скрипта турели)=

Сообщение BANNERTM 13 июл 2012, 16:30

Сделал через триггеры - стало лучше. Но все равно при около 40 пушек и около 60 целей фпс заметно падает.
BANNERTM
UNITрон
 
Сообщения: 241
Зарегистрирован: 26 фев 2012, 00:13

Пред.След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11