В игре нет сложных скриптов. Вся игра представляет собой набор префабов-картинок (с галкой статик). Есть и гриды/тайлмепы (с галкой статик) по которым нарисован уровень из палитры.
Из физических взаимодействий, коллайдер есть у игрока, который взаимодействует с землей и стенами (коллизии).
У некоторых объектов также есть коллайдеры, но они isTrigger.
Запустил сцену и профайлер.
Раньше я никогда не работал с профайлером в юнити. Посмотрел пару уроков.
Вот изображение профайлера, когда игрок просто стоит на земле.
Вот часть кода - контроллера игрока, которая в момент записи, взаимодействует с физикой (земля - определение земли)
Синтаксис:
Используется csharp
private void GetPlayerState()
{
playerIsGrounded = Physics2D.OverlapCircle(playerGroundCheckfield.position, overlapCircleRadius, whatIsGround | whatIsIce | whatIsSliding);
playeIsOnIce = Physics2D.OverlapCircle(playerGroundCheckfield.position, overlapCircleRadius, whatIsIce);
playerIsSliding = Physics2D.OverlapCircle(playerGroundCheckfield.position, overlapCircleRadius, whatIsSliding);
}
void FixedUpdate()
{
GetPlayerState();
}
Я гуглил и понял, что FindNewContacts связано с определением контактов - коллизий.
То есть какие то объекты много контактируют, соприкасаются друг с другом из за этого идут лишние расчеты и нагрузка. Могу и ошибаться, но вот так я понял.
Подскажите, в чем может быть проблема? В какую сторону смотреть? На какие объекты обратить внимание (с коллайдерами, без них, статические, гриды-тайлмепы и т.д.)?
Может, есть способ узнать метод, где идет такая нагрузка.
График явно е нормальный, для простого проекта.