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