Вторник, 26 Ноября 2024, 10:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Кто работал с фотоном?[Решено (наверное)]
FearelesДата: Среда, 03 Июня 2020, 10:56 | Сообщение # 1
почетный гость
Сейчас нет на сайте
После неудач со стандартным юнитивским нетворком, я решил попробовать фотон

В игре у меня передаются и принимаются команды через stream
Есть 2 условно говоря игрока: main и opponent, которые спаунятся через PhotonNetwork.Instntiate
В main мы пишем значение через игровой менеджер, а из оппонентa только читаем

То есть, выполняется вот такой код

на отправителе
stream.SendNext(command);
if (command == 7)
{
stream.SendNext(turnInfo.moveCell.x);
stream.SendNext(turnInfo.moveCell.y);
}

и на получателе
if (command == 7)
{
int x = (int)stream.ReceiveNext();
int y = (int)stream.ReceiveNext();
turnInfo.moveCell=new Vector2Int(x,y);

Все работает вроде нормально. Армии подгружает как надо. Ходы переключает. Но иногда туда передается какая-то фигня, которая берется непонятно откуда. Допустим в поле 8х7 откуда-то в оппоненте берется turnInfo.moveCell.x=40

Пробовал преобразовать битконвертером Vector2Int в массив байтов - все равно принимает какую-то лажу.

Пробовал отправлять сообщения через RaiseEvent, куда добавлял сконвертированый Vector2Int – не лучше
Причем я сделал так, что Эвент отправляется всем (в том числе и отправителю). А отправляется только владельцем. По идеи, если бы он отправил бы лажу, то всем бы пришла лажа, в том числе и ему. Но нет. После отправки все нормально. А другой клиент получает случайную лажу, как получал.

Добавлено (03 Июня 2020, 17:20)
---------------------------------------------
Короче, не выпендривайтесь, и работайте через эвенты в одном объекте, а не в двух одинаковых.


Делаю игру на unity 3d
https://vk.com/ser_gunnar


Сообщение отредактировал Feareles - Среда, 03 Июня 2020, 17:19
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг