Distance

Distance Interest Management

Distance Interest Management

Простое решение для Interest Management методом перебора заключается в том, чтобы просто отправлять все объекты всем клиентам в пределах досягаемости. Это то, что делает Network Proximity Checker:

foreach spawned entity:
    foreach connection:
        if (Vector3.Distance(spawned, connection) < visRange):
            connection.Send(spawned);

Единственным недостатком является то, что проверка каждого объекта на соответствие каждому соединению обходится относительно дорого. Поэтому, если вам нужно множество объектов или подключений, было бы разумно использовать более быстрый алгоритм, такой как Spatial Hashing.

Перед началом

Добавьте компонент Distance Interest Management на тот объект, на котором у вас висит компонент Network Manager:

Диапазон видимости определяет радиус вокруг игрока, в пределах которого он получает обновления о состоянии мира.

Rebuild Interval измеряется в секундах и определяет, как часто Mirror пересчитывает видимость объектов для клиентов.

Custom Visible Range

Приведенная выше настройка диапазона видимости применяется ко всем сетевым объектам в качестве диапазона "по умолчанию". Вы можете переопределить это значение для объектов, которым требуется другой диапазон, например, исключительные случаи для объектов, которые очень велики или очень малы по сравнению с большинством других объектов в сцене. Чтобы сделать это, просто добавьте к этим объектам компонент Distance Interest Management Custom Range и установите значения диапазона видимости для этих объектов в соответствии с вашими потребностями.

Last updated