У меня задача синхронизировать состояние объекта используя как референс объект на мастер клиенте.
Т.е.
1) Мастер клиент начинает игру и меняет состояние объектов на сцене.
2) Подключается второй клиент
3) Получает состояние объектов с мастер клиента
Я так понимаю что мне надо в поле Observed у PhotonView перетащить скрипт переменные из которого надо синхронизировать.
В самом же скрипте написать:
Синтаксис:
Используется csharp
void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
if(stream.isWriting)
{
stream.SendNext(isOnline);
}
else
{
isOnline = (bool)stream.ReceiveNext();
}
}
{
if(stream.isWriting)
{
stream.SendNext(isOnline);
}
else
{
isOnline = (bool)stream.ReceiveNext();
}
}
Я так понимаю что данный код будет синхронизировать переменную isOnline между клиентами?
Что значит переменная stream.isWriting?
В случае если клиент подключается позже, состояние переменной isOnline станет как у клиента который уже был в игре или все получат состояние переменной от нового клиента?
Почему isOnline получит именно значение отправленное в SendNext()?