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

Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 00:06
Otselot
Здравсвуйте! Имеется префаб, которому скриптом задано нужную скорость перемещение по оси Х. Сам префаб спавниться из определенной точки через равные промежутки времени. Все работает нормально, но при переносе проекта на другой ПК и его запуске, скорость этого префаба увеличивается вдвое, хотя значения выставлены те же и не меняются. Причем меняется скорость всех объектов которые появляются на сцене. Версии юнити одинаковые на двух ПК. В чем может быть причина такого поведения?

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 01:16
Tolking
Второй ПК в 2 раза мощнее(быстрее) первого?

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 01:19
1max1
Похоже тебе не сказали что передвижение в апдейте через трансформ зависит от фпс)

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 09:09
Otselot
Tolking писал(а):Второй ПК в 2 раза мощнее(быстрее) первого?

Та нет, плюс/минус одинаковые

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 11:14
Alkos26Rus
на Time.deltaTime умножай когда перемещаешь объект

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 13:26
istreloi
Есть мнение.... использовать:
void FixedUpdate ()
{

}

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 13:58
Alkos26Rus
istreloi писал(а):Есть мнение.... использовать:
void FixedUpdate ()
{

}

FixedUpdate лучше не использовать, 90 процентов задач решаются с помощью обычного Update, FixedUpdate вызывается через фиксированное время, поэтому это плохо для производительности

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 16:53
Jarico
Alkos26Rus писал(а):FixedUpdate лучше не использовать, 90 процентов задач решаются с помощью обычного Update, FixedUpdate вызывается через фиксированное время, поэтому это плохо для производительности

Где такую чушь вычитал?

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 16:59
BornFoRdeatH
Jarico писал(а):
Alkos26Rus писал(а):FixedUpdate лучше не использовать, 90 процентов задач решаются с помощью обычного Update, FixedUpdate вызывается через фиксированное время, поэтому это плохо для производительности

Где такую чушь вычитал?


Как минимум в документации

Description
Frame-rate independent MonoBehaviour.FixedUpdate message for physics calculations.


Фиксед апдейт используется исключительно для работы с физикой, если кто и использует его не для физики, то это откровенное рукожопство.

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 17:08
Jarico
BornFoRdeatH писал(а):Как минимум в документации

Description
Frame-rate independent MonoBehaviour.FixedUpdate message for physics calculations.


Фиксед апдейт используется исключительно для работы с физикой, если кто и использует его не для физики, то это откровенное рукожопство.


Ссылочку, скриншот где написано что FixedUpdate исключительно для работы с физикой?

Разница между Update и FixedUpdate - лишь в регуляции частоты вызовов для последнего. И немножечко раскинув мозгами можно додуматься что разная дельта приводит к разным результатам (обычно для Update)

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 17:49
Alkos26Rus
Jarico писал(а):Разница между Update и FixedUpdate - лишь в регуляции частоты вызовов для последнего. И немножечко раскинув мозгами можно додуматься что разная дельта приводит к разным результатам (обычно для Update)

Ты не разбираешся в этом, зачем тогда умничать. Разная дельта не приводит к разным результатам, что ты несешь? А FixedUpdate вызывается вместе с оброботкой физического кадра, вот поэетому его и используют для обработки физики. О какой регуляции частоты ты говоришь? Ну отригулируй Fixed Timestep, поставь по больше и посмотришь что будет с твоей физикой, потому что это промежуток времени между физическими кадрами, другого регулятора частоты вызова FixedUpdate нету.

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 18:02
waruiyume
FixedUpdate вызывается через фиксированное время, поэтому это плохо для производительности

Т.е. на FPS выше 50 мы принципиально не рассчитываем?

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 18:09
Alkos26Rus
waruiyume писал(а):
FixedUpdate вызывается через фиксированное время, поэтому это плохо для производительности

Т.е. на FPS выше 50 мы принципиально не рассчитываем?

Ну можно расчитывать на что угодно, но если игра сложная, не какие нибудь карты и тд, то от проседания фпс ни кто не застрахован, а уж если еще и руки из одного места и не можешь оптимизировать и суещь FixedUpdate куда попало, то да выше 50 фпс не жди

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 19:23
Jarico
Alkos26Rus писал(а):Ты не разбираешся в этом, зачем тогда умничать. Разная дельта не приводит к разным результатам, что ты несешь?


Не искажай мои слова
Скрытый текст:
Jarico писал(а):И немножечко раскинув мозгами можно додуматься что разная дельта приводит к разным результатам


Alkos26Rus писал(а):О какой регуляции частоты ты говоришь? Ну отригулируй Fixed Timestep, поставь по больше и посмотришь что будет с твоей физикой, потому что это промежуток времени между физическими кадрами, другого регулятора частоты вызова FixedUpdate нету


Ну и регулировал я тикрейт а-ля Fixed Timestep а-ля Time.fixedDeltaTime, делал даже обновления 1 раз в секунду и физика у меня никуда не подевалась и ничего с ней не случилось... А если ты такой умный то должен знать про параметр Collision Detection у Rigidbody который регулирует обнаружение коллизий когда тело быстро движется и не даёт сквозь другие объекты проходить

Alkos26Rus писал(а):Ты не разбираешся в этом, зачем тогда умничать.

Мой ответ такой же...

Alkos26Rus писал(а):Ну можно расчитывать на что угодно, но если игра сложная, не какие нибудь карты и тд, то от проседания фпс ни кто не застрахован, а уж если еще и руки из одного места и не можешь оптимизировать и суещь FixedUpdate куда попало


В проекте ничего не оптимизировал, пихаю FixedUpdate везде где попало, вытаскиваю из очереди 100-1000 сетевых пакетов в цикле while за 1 тик (FixedUpdate) из нативной библиотеки и обновляю объекты в сцене здесь же в цикле... И без просадок фпс при этом симулируя физику с тысячами физ. объектами как для клиента так и для сервера в одной сцене в одном процессе Unity

И у меня дохлый ПК... Intel Xeon X5450 + GTX 1050 Ti с 2-мя планками ОЗУ по 4 ГБ и таким же дохлым HDD 2012 года который скоро крякнет

Re: Баг с изменением скорости объекта

СообщениеДобавлено: 11 мар 2021, 20:15
Alkos26Rus
И немножечко раскинув мозгами можно додуматься что разная дельта приводит к разным результатам (обычно для Update)

Это твои слова? Что я искозил? Ты несешь чушь, дельтатайм для того и существует что бы не было разных результатов, учи документацию.

Ну и регулировал я тикрейт а-ля Fixed Timestep а-ля Time.fixedDeltaTime

Ты вобще о чем? Что ты там регулировал? Понобрасал в кучу всего, тикрейт тут причем? Что за аля, ты конкретно скажи что ты регулировал, а не аля. Ты хочешь сказать что ты делал Fixed Timestep раз в секунду, ты точно в здравом уме?

В проекте ничего не оптимизировал, пихаю FixedUpdate везде где попало, вытаскиваю из очереди 100-1000 сетевых пакетов в цикле while за 1 тик (FixedUpdate) из нативной библиотеки и обновляю объекты в сцене здесь же в цикле... И без просадок фпс при этом симулируя физику с тысячами физ. объектами как для клиента так и для сервера в одной сцене в одном процессе Unity


Я не знаю твой проект, может в твоем проекте и тормазить нечему, ПК вполне может справится с тем что ты описал. Все это имеет накопительный характер, если принебрегаешь оптимизацией то в какой то момент фпс начнет падать, когда ты добавишь в свой проект очередную плюшку. А знаешь есть еще мобильные приложения, не слышал? Или по твоему что все на пк делают проекты.