Передача сообщений ч / б «Только сервер LAN» и «Клиент LAN» на разных сценах в Unity - PullRequest
0 голосов
/ 15 мая 2018

Привет, я хочу передать сообщение на клиент и сервер, которые находятся на разных сценах, как я могу это сделать в Unity?

Ниже приводится мой сценарий: - У меня 5 сцен -

  1. BaseScene (2) OfflineScene (3) OnlineScene (4) ClientOnline (5) ServerOnline.

Во всех этих сценах есть кнопка с текстом названий сцен. На базовой сцене я добавил пустой игровой объект, в который я поместил «customNetworkScript», который происходит от сценария «NetworkManager», а также поместил «Network Manager HUD» на него. Ниже приведен код, который я поместил в «customNetworkScript»: -

public class customNetworkScript : NetworkManager {

        public override void OnClientSceneChanged(NetworkConnection conn)
            {
                SceneManager.LoadScene("ClientOnline", LoadSceneMode.Single);
                ClientScene.Ready(conn);
                ClientScene.AddPlayer(conn, 0);
            }

            public override void OnServerSceneChanged(string sceneName)
            {
                SceneManager.LoadScene("ServerOnline", LoadSceneMode.Single);
            }
    }

Я поместил «OfflineScene» и «OnlineScene» в поля с именами «Offline Scene» и «Online Scene» в компоненте «Network Manager». Также поместили пустой префаб в «Spawn Info» в «customNetworkScript» и на нем есть компонент «Network Identity». Теперь, когда я запускаю проект, в одном случае я нажимаю «Только LAN-сервер», а в другом - «Клиент LAN». И я получаю свои соответствующие сцены в обоих экземплярах -> «ServerOnline» появляется в том случае, когда я нажимаю «LAN Server only», а «ClientOnline» появляется в другом экземпляре. Что я хочу, так это то, что когда я нажимаю кнопку «ServerOnline», строка сообщения передается на сцену «ClientOnline», и то же самое происходит в обратном направлении, когда я нажимаю кнопку «ClientOnline».

Я пробовал «Rpc» и «Command», но они работают, только когда я нажимаю «LAN Host» вместо «LAN Server Only». Я очень старался, но не смог найти ничего полезного. Будет очень приятно, если кто-то подробно объяснит мне вместе с кодом, как мне этого добиться.

Большое спасибо за ваше время.

1 Ответ

0 голосов
/ 26 мая 2018

После нескольких часов исследований и тяжелой работы, наконец, найдите решение для моей проблемы. Я буду ссылаться на этот актив, если кто-то еще застрял на нем:

Этот ресурс хорошо документирован и расскажет вам все о том, как вы можете создать выделенный / чистый сервер и клиентскую сеть: -

Ссылка на актив

Если кто-то все еще не понимает, не стесняйтесь спрашивать меня. Я буду стараться изо всех сил.

...