Unity: хуже FPS, если я отключу больше деревьев? - PullRequest
0 голосов
/ 19 октября 2019

У меня следующая проблема:

В настоящее время я пишу графическое меню, в котором проигрыватель может установить расстояние для деревьев, которые будут отображаться. Он мог выбрать 1000m, 750m, 500m и 250m.

Я посмотрел на Unity Profiler, а также на Меню статистики и получил от моих тестеров ответ, что выбор расстояния 1000m дает наилучшие значения FPS.

Это методя использую, чтобы отключить деревья, основываясь на том, что выбрал игрок:

for (int i = 0; i < allVegetations.Count; i++)
{
    // i need this cause Players can chop trees and then they don't exist anymore
    if (allVegetations[i] == null)
    {
        allVegetations.RemoveAt(i);
        continue;
    }
    else
    {
        if (Vector3.Distance(allVegetations[i].transform.position, player.transform.position) < vegetationRenderDistance)
        {
            if (!allVegetations[i].activeSelf)
                allVegetations[i].SetActive(true);
        }
        else if (allVegetations[i].activeSelf)
        {
            allVegetations[i].SetActive(false);
        }
    }
}

allVegetations - это List из GameObjects, где я добавляю каждое Дерево после того, как оно получило Instantiated.

vegetationRenderDistance - это значение, которое устанавливается в графическом меню (как описано выше).

Я отлаживал, если все значения верны, и они верны.

Такжеон отключает все как следует. Но чем больше я отключаю, тем хуже становится моя скорость FPS. На моем ПК я теряю около 5 FPS, один из моих тестеров теряет около 20 FPS.

Что я делаю не так?

Я не использую деревья ландшафта Unity или деревья ландшафта Unity, все мои деревья являются статическими объектами GameObject.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...