Scene

Scene Interest Management

Scene Interest Management

Scene Interest Management используется при добавлении дополнительных сцен с физической изоляцией. Это означает, что даже если у вас есть несколько экземпляров одной и той же под-сцены, загруженных на сервер, коллизии и тому подобное между объектами взаимодействуют только внутри это своей под-сцены, не мешая другим.

Обычно на сервер и подключенные клиенты всегда загружается одна и та же основная сцена. В случае дополнительных сцен это, как правило, главная сцена, а дополнительные подзаголовки содержат фактическое содержимое сцены.

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

Добавьте компонент Scene Interest Management на объект, который имеет компонент Network Manager:

Добавьте Physics Simulator

В каждой под-сцене добавьте пустой игровой объект и добавьте на него компонент Physics Simulator. Поскольку дополнительные сцены будут загружаться на сервер в виде "физических сцен" Unity не имитирует физику для них, поэтому этот компонент делает это за вас в каждой под-сцене.

Окружающая среда

Также в каждой под-сцене создайте пустой игровой объект под названием Environment с Network Identity и сделайте весь статический несетевой контент дочерним по отношению к этому объекту. Как правило, это декорации, такие как здания, дорожные сетки и другой неинтерактивный контент.

Не размещайте под объектом Environment ничего, что будет подключено к сети и/или может быть интерактивным для игроков, например, двери, пикапы, киоски и т.д.

Спавн игроков

Когда вы создаете экземпляр игрока или другого сетевого объекта, Unity не имеет встроенного механизма для указания, в какой под-сцене создается экземпляр объекта... объекты создаются всегда в активной сцене, которая является нашей главной сценой. После создания экземпляра и перед спавном объекта вызовите SceneManager.MoveGameObjectToScene чтобы переместить объект в нужную под-сцену. Как только он будет создан, он будет виден клиентам с объектами player в той же под-сцене. Если вы переместите его в другую под-сцену, видимость как в новой, так и в предыдущей под-сценах будет обновлена автоматически.

Обратите внимание, что сетевые объекты перемещаются по под-сценам только на стороне сервера. Клиенты создают все в своей главной сцене, и нет необходимости перемещать объекты по под-сценам на клиентах, поскольку у них загружается только одна под-сцена.

Raycasting и остальное

Физические сцены имеют специальный набор методов для Raycast и остальным подобным проверкам, которые должны использоваться на сервере, поскольку сервер имеет под-сцены в качестве физических сцен. Вы можете прочитать об этих методах здесь. На удаленных клиентах (не являющихся хостом) raycasting и остальное выполняется обычными методами, поскольку клиент просто объединяет дополнительную сцену с главной.

Last updated