Страница 2 из 5

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

СообщениеДобавлено: 13 июн 2012, 15:03
Syberex
DDDENISSS писал(а):Что-то я не понял как FixedUpdate мог помочь? Ведь он чаще вызывается.

Как чаще, если Update это обновление каждый кадр, а FixedUpdate фиксированное число раз, в справке ясно сказано - в FixedUpdate следует делать все сложные и медленные вычисления.

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

СообщениеДобавлено: 13 июн 2012, 15:46
DDDENISSS
Update вызывается перед каждым кадром? Тогда 30-60 раз в секунду. А FixedUpdate 100 раз в секунду.

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

СообщениеДобавлено: 13 июн 2012, 16:05
waruiyume
Syberex писал(а):...в справке ясно сказано...

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

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

СообщениеДобавлено: 14 июн 2012, 10:32
Syberex
Да, точно, там про rigidbody :|

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

А как для FixedUpdate рассчитали 0,02?

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

СообщениеДобавлено: 14 июн 2012, 10:46
waruiyume
Никак, он выставляется, а 0,02- значение по умолчанию (Time Manager->Fixed Timestep)

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

СообщениеДобавлено: 14 июн 2012, 11:42
Syberex
Понятно, спасибо, что просветили ^:)^

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

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

Все равно лаги при большом количестве целей и пушек! Помогите пожалуйста кто-нибудь! Неужели не возможно создать RTS на unity???
Есть ли готовые скрипты ?

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

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

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

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

СообщениеДобавлено: 14 июн 2012, 20:50
Syberex
А сколько примерно юнитов в сцене? :-?

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

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

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


??? как записать юнитов в очередь на поиск целей?

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

СообщениеДобавлено: 14 июн 2012, 21:30
Syberex
Ну для начала вот
MSDN - Queue<T> Class
Руководство по C# --- Очередь: классы Queue и Queue<T>

Потом сделать объект менеджер, который будет принимать юнитов в очередь и отдавать их корутине из очереди ... корутина после нахождения цели, будет устанаваивать цель юниту (свойство target класса Unit), после чего юнит поймет, что пора действовать [nuklear]

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

СообщениеДобавлено: 14 июн 2012, 23:37
DDDENISSS
Все равно лаги при большом количестве целей и пушек!

Сколько у тебя пушек и других объектов?
С помощью layerMask попробуй оптимизировать. Т.е. проверяй только нужные тебе слои.

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

СообщениеДобавлено: 15 июн 2012, 11:53
Jakobs
сделай так чтоб тюрелька искала цели только тогда когда они в тригере и только в том случаи если у тюрели нет выбранной цели, также советую чтоб не тюрель искала цель, а сама цель кричала тюрели "Стреляй в меня", тогда тюрель не нуждается в обработки большого количества целей

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

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

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

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


А сколько у вас пушек при 2000 целях? можно кусок кода увидеть?

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

СообщениеДобавлено: 13 июл 2012, 16:30
BANNERTM
Сделал через триггеры - стало лучше. Но все равно при около 40 пушек и около 60 целей фпс заметно падает.