Не работает вызов RPC Unity 4.6

Сеть в Unity3D

Не работает вызов RPC Unity 4.6

Сообщение ASD 27 мар 2017, 23:47

Через Network.Instantiate инстансятся игроки. Все подключаются, все у всех видны. На каждом есть скрипт и NetworkView. Задача - при нажатии кнопки в интерфейсе игрока который является сервером у всех началась игра. Делаю так

Синтаксис:
Используется csharp
        [RPC]
        void StartGame()
        {
                isGameStart = true;
        }

        void OnGUI()
        {
                if (Network.isServer && !isGameStart && networkView.isMine)
                {
                        if(GUI.Button(new Rect(240, 160, 80, 25), "Start Game"))
                        {
                                networkView.RPC("StartGame", RPCMode.All);
                       }
                }
                if (Network.isClient && !isGameStart && networkView.isMine)
                {
                        GUI.Label(new Rect(240, 160, 80, 25), "Waiting for players...");
                }
        }


При этом у игрока сервера игра начинается, а у игроков-клиентов нет, будто не происходит вызов функции StartGame. Клиенты все в этот момент подключены, игроки видны друг у друга на экранах, но переменная isGameStart у клиентов не становится true. В чём может быть проблема?
SmartMove Games
ASD
UNIверсал
 
Сообщения: 400
Зарегистрирован: 14 дек 2012, 23:40
Откуда: Харьков
  • ICQ

Re: Не работает вызов RPC Unity 4.6

Сообщение Tolking 28 мар 2017, 10:09

[Comand]
CmdStartGame(){
RpcStartGame();
}

[RPC]
RpcStartGame(){
isGameStart = true;
}

GuiStartGame(){
CmdStartGame();
}
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Не работает вызов RPC Unity 4.6

Сообщение ASD 28 мар 2017, 22:47

Насколько я понял, это применимо для юнити выше 5-й версии. В 4.6 [Command] нету
SmartMove Games
ASD
UNIверсал
 
Сообщения: 400
Зарегистрирован: 14 дек 2012, 23:40
Откуда: Харьков
  • ICQ

Re: Не работает вызов RPC Unity 4.6

Сообщение ASD 29 мар 2017, 16:38

Разобрался. Оказывается вызывать RPC надо из того же скрипта или объекта где создавался сервер или коннект. Если же вызывать из объекта который создался сетевым инстансом - то не работает
SmartMove Games
ASD
UNIверсал
 
Сообщения: 400
Зарегистрирован: 14 дек 2012, 23:40
Откуда: Харьков
  • ICQ


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 1