Четверг, 28 Марта 2024, 21:39

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Оптимизация
Оптимизация
kinoooshnikДата: Пятница, 23 Октября 2015, 01:11 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Привет!
У меня есть функция которая выполняет определенные действия когда игрок меняет свое расположение на 500. При вызове этой функции ФПС проседает на несколько кадров. Это очень заметно. Можно как-то исправить это? Что бы функция выполнялась параллельно игре или переместить нагрузку на другое ядро?
berilДата: Пятница, 23 Октября 2015, 01:13 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Код в студию cool



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
kinoooshnikДата: Пятница, 23 Октября 2015, 01:20 | Сообщение # 3
почетный гость
Сейчас нет на сайте
beril, а толку? Я поискав в инете, понял, что мне надо капать в сторону потоков, но как с ними работать в Uinty я пока не понял. Поможете?
PocifikДата: Пятница, 23 Октября 2015, 01:37 | Сообщение # 4
участник
Сейчас нет на сайте
kinoooshnik, нет, тебе надо копать в сторону того что бы дать код своей функции.
berilДата: Пятница, 23 Октября 2015, 01:37 | Сообщение # 5
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Потоки можно использовать, только если не используются методы и обьекты Unity, иначе скорей всего будет крошиться unity. Потоки юзаем только в своих классах.
Есть еще Coroutine, скорей всего это то, что тебе нужно




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
kinoooshnikДата: Пятница, 23 Октября 2015, 01:48 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Pocifik,

Вот код с потоками, но он выдает ошибку

Буду пробовать как-то ее исправить.

Добавлено (23 октября 2015, 01:48)
---------------------------------------------
beril, я как то пытался разобраться с коуринами, но у меня не получилось. А суть потоков я понял сразу и сейчас я как-нибудь заменю методы unity на свои.

Сообщение отредактировал kinoooshnik - Пятница, 23 Октября 2015, 01:46
berilДата: Пятница, 23 Октября 2015, 01:59 | Сообщение # 7
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата kinoooshnik ()
Вот код с потоками, но он выдает ошибку

Читай, что выше - нельзя юзать потоки которые как то взаимодействуют с обьектами, методами Unity. Классы, которые наследуются от MonoBehaviour тоже туда вроде относятся.
Что это вообще ? ты пытаешься уровень из файла загрузить? wacko




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
kinoooshnikДата: Пятница, 23 Октября 2015, 02:05 | Сообщение # 8
почетный гость
Сейчас нет на сайте
beril, Я знаю что нельзя, сейчас код переписываю, что бы он не трогал Unity. А суть кода в том, что он загружает ландшафт с упрощенной сеткой ставит его в определенном радиусе от игрока, а 1/10 от радиуса ставит более детализированую сетку.
shizofrenДата: Пятница, 23 Октября 2015, 11:50 | Сообщение # 9
Starting MS-DOS...
Сейчас нет на сайте
kinoooshnik, код что-то неадекватное и на неадекватном языке.

Цитата kinoooshnik ()
А суть кода в том, что он загружает ландшафт с упрощенной сеткой ставит его в определенном радиусе от игрока, а 1/10 от радиуса ставит более детализированую сетку.

Какая сетка?


Моя команда
TymonrДата: Пятница, 23 Октября 2015, 14:21 | Сообщение # 10
With OpenSource forever
Сейчас нет на сайте
kinoooshnik, потоки тут не помогут. Загрузка из файла - ОЧЕНЬ медленный процесс. Делай это по очень маленьким объемам данных и будет терпимо

Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
kinoooshnikДата: Суббота, 24 Октября 2015, 04:19 | Сообщение # 11
почетный гость
Сейчас нет на сайте
shizofren, я разрабатываю проект один и по этому мне не важна читаемость кода. Сетка - это меш.
Tymonr, ок.
martukДата: Суббота, 24 Октября 2015, 07:56 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
kinoooshnik, ты об это скоро пожалеешь. Лучше пиши удобно, вероятно всего тебе придется вернуться к старым кускам кода.
KamiRoninДата: Суббота, 24 Октября 2015, 08:22 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
kinoooshnik, в Unity есть встроенный LOD может ты сделаешь показ сеток разной детализации через него, без скриптов?

Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
berilДата: Суббота, 24 Октября 2015, 17:17 | Сообщение # 14
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Лучше используй AssetBundle для таких целей. Сделай несколь разновидностей сетки и загружай, какую нужно



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
kinoooshnikДата: Воскресенье, 25 Октября 2015, 00:51 | Сообщение # 15
почетный гость
Сейчас нет на сайте
KamiRonin, у меня при первой загрузке генерируется карта высот, создаются упрощенные меши и записываются в файл. А во всех последующих загрузках я упрощенные загружаю из файла, а которые ближе я создаю по карте высот и увеличиваю их детализацю, и растравляю в зависимости от дальности расположения. И даже если я буду использовать LOD, то все равно будут проседания FPS. Именно по этому потоки - единственный выход для меня.
beril, я сначала использовал AssetDatabase, но позже узнал, что он работает только в редакторе и по этому мне пришлось заменить файлы .Asset на обычные файлы.
martuk, у меня были моменты, когда я возвращался к старому коду и не понимал ничего. Но писать красивый код или хотя бы комментировать я не хочу.
Если кому интересно, почему я решил использовать меши, а не стандартный террейн, то почитайте вот это.
berilДата: Воскресенье, 25 Октября 2015, 20:19 | Сообщение # 16
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата kinoooshnik ()
beril, я сначала использовал AssetDatabase, но позже узнал, что он работает только в редакторе и по этому мне пришлось заменить файлы .Asset на обычные файлы.

Ты не так понял, я имел ввиду бандлы (AssetBundle), там есть асинхронная загрузка




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Оптимизация
  • Страница 1 из 1
  • 1
Поиск:

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