Привет, я хочу передать сообщение на клиент и сервер, которые находятся на разных сценах, как я могу это сделать в Unity?
Ниже приводится мой сценарий: -
У меня 5 сцен -
- 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».
Я очень старался, но не смог найти ничего полезного. Будет очень приятно, если кто-то подробно объяснит мне вместе с кодом, как мне этого добиться.
Большое спасибо за ваше время.