Страница 1 из 1

Отключать модель если игрок далеко, LOD?

СообщениеДобавлено: 19 сен 2017, 19:21
DarkDeivel
Всем привет! У меня игра с видом сверху и довольно таки не маленькая сцена... есть много игровых объектов и тут я начал переживать за нагрузку. Мне требуется что бы эти объекты продолжали жить своей жизнью даже если игрок не близко, но т.к. таких объектов много и они все работают то нагрузка получается не малая. Что мне можно в таком случае сделать? Я думал хотя бы отключать сами модельки этих объектов если игрок далеко что бы не воспроизводились анимации к примеру(можно ли для этого использовать LOD систему? или как мне в такой сиутации быть?

Re: Отключать модель если игрок далеко, LOD?

СообщениеДобавлено: 19 сен 2017, 21:24
NOVA
DarkDeivel писал(а):Всем привет! У меня игра с видом сверху и довольно таки не маленькая сцена... есть много игровых объектов и тут я начал переживать за нагрузку. Мне требуется что бы эти объекты продолжали жить своей жизнью даже если игрок не близко, но т.к. таких объектов много и они все работают то нагрузка получается не малая. Что мне можно в таком случае сделать? Я думал хотя бы отключать сами модельки этих объектов если игрок далеко что бы не воспроизводились анимации к примеру(можно ли для этого использовать LOD систему? или как мне в такой сиутации быть?

Ну Вы же сами ответили на свой вопрос. Вид сверху и спереди сверху всегда самый проблематичный. Надо как-то решать проблему.

Re: Отключать модель если игрок далеко, LOD?

СообщениеДобавлено: 19 сен 2017, 22:13
seaman
Ну выключить анимацию элементарно, установив "Cull Completely" в аниматоре.
Далее обязательно выключить ригидбоди в OnBecameInvisible
Если висят большие скрипты - тоже выключать.

Re: Отключать модель если игрок далеко, LOD?

СообщениеДобавлено: 20 сен 2017, 04:50
DarkDeivel
NOVA писал(а):
DarkDeivel писал(а):Всем привет! У меня игра с видом сверху и довольно таки не маленькая сцена... есть много игровых объектов и тут я начал переживать за нагрузку. Мне требуется что бы эти объекты продолжали жить своей жизнью даже если игрок не близко, но т.к. таких объектов много и они все работают то нагрузка получается не малая. Что мне можно в таком случае сделать? Я думал хотя бы отключать сами модельки этих объектов если игрок далеко что бы не воспроизводились анимации к примеру(можно ли для этого использовать LOD систему? или как мне в такой сиутации быть?

Ну Вы же сами ответили на свой вопрос. Вид сверху и спереди сверху всегда самый проблематичный. Надо как-то решать проблему.


Не понял ничего...

seaman писал(а):Ну выключить анимацию элементарно, установив "Cull Completely" в аниматоре.
Далее обязательно выключить ригидбоди в OnBecameInvisible
Если висят большие скрипты - тоже выключать.


Как мне сделать правильную проверку на расстояние от объекта до игрока? Через Vector3.Distance? А если оно висит в апдейте постоянно и проверяет расстояние мне кажется это не хорошо, а по другому я не знаю как.

Re: Отключать модель если игрок далеко, LOD?

СообщениеДобавлено: 27 сен 2017, 00:50
Alex_Hell
посмотри ассеты по LOD или конверсии в billboard (я не пользовался)
https://www.assetstore.unity3d.com/en/#!/content/69651
https://www.assetstore.unity3d.com/en/#!/content/37687
https://www.assetstore.unity3d.com/en/#!/content/27178

если есть много Update на объектах, которые что-то вычисляют (двигаются, AI) либо физика - отключай по расстоянию или уменьшай число Update/sec (можно просчитать ту же логику не 30 раз в сек, а 1 раз в сек за всю прошедшую секунду) - т.е. переход в режим энергосбережения для дальних объектов, сама проверка на режим - возможно достаточно не каждый Update до каждого объекта, а реже например раз в секунду и только если двигалась камера, и с возможным доп spatial tree - это все универсально хоть для логики/скриптов, хоть для LOD.