Моделирование данных, не зависящих от сцены Unity, с помощью Photon FusionC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Моделирование данных, не зависящих от сцены Unity, с помощью Photon Fusion

Сообщение Anonymous »

Мне нужна помощь в том, чтобы моя игра стала многопользовательской.
Я только начинаю работать с Photon, и хотя я понимаю, почему документация в первую очередь фокусируется на таких вещах, как движение игрока, я немного зацикливаюсь на сетевых дополнительных данных.
Например, игра, которую я создаю, представляет собой карточную игру, и в настоящее время синглтон содержит список, представляющий руку каждого игрока, который не является напрямую привязан к графическому интерфейсу. Он живет на мировом игровом объекте и затем используется для отслеживания всех текущих карт. Хотя я предполагал, что это может существовать исключительно как данные, прикрепленные к реальным игровым объектам, таким как каждая карта, я подумал, что было бы проще иметь набор данных, на основе которых затем отображается графический интерфейс.
Итак, если у меня есть p1, p2 и p3, с тремя картами, назовем это k, j, j, как я могу сказать фотону, что эти данные должны иметь только одну копию, которая сохраняется на хосте, а не четыре копии каждой руки на устройство. Предполагая, что я правильно понимаю, что у p1 будет экземпляр Gamecore для своей сцены, а у p2 будет экземпляр игрового ядра для своей сцены, поскольку, хотя это синглтон, каждый клиент имеет свой собственный экземпляр.
илиrrr
Должен ли каждый клиент создать свой собственный список p1, p2 и p3, а затем сообщить об изменении, которое будет распространено на всех клиентов, чтобы гарантировать, что все они имеют одинаковые данные. Если это так, то это будет больше похоже на то, что, скажем, p1 отбрасывает карту, обновляется, а затем отправляет сообщение для получения клиентами. Для справки, вот мое текущее игровое ядро ​​и урезанный класс игрока.
public class GameCore : MonoBehaviour{

public List playerList = new List();
public static GameCore Instance { get; private set; }

private void Awake()
{
if (Instance != null && Instance != this)
Destroy(gameObject);
else
Instance = this;
}

}

public struct Player {

//should initialize with a name and 7 blank cards
public Player(string playerName)
{
name = playerName;
playerCards = new List();
score = 0;
sticks = new Stick();
}

private string name;
private int score;
public List playerCards;
public Stick sticks;

}


Подробнее здесь: https://stackoverflow.com/questions/791 ... ton-fusion
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Моделирование данных, не зависящих от сцены Unity, с помощью Photon Fusion
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Изменение скорости игрока приводит к резким движениям в многопользовательской игре Unity Photon Fusion.
    Anonymous » » в форуме C#
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Unity Photon Fusion 2.0 Network Transform, выпуск
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • RPC-вызовы в Unity 3D/Photon Fusion 2
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • RPC-вызовы в Unity 3D/Photon Fusion 2
    Anonymous » » в форуме Android
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»