Функции

1) Подключиться к серверу

SyncHub_ConnectionManager.Instance.ConnectToServer();

2) Подключиться к комнате по её названию

SyncHub_ConnectionManager.Instance.ConnectRoom(string _nameRoom);
  • _nameRoom - Название комнаты

3) Отключиться от комнаты

SyncHub_ConnectionManager.Instance.DisconnectRoom();

4) Запросить список комнат

SyncHub_ConnectionManager.Instance.GetListRooms();

5) Создать комнату

SyncHub_ConnectionManager.Instance.CreateRoom(string _nameRoom, string _sceneName, int _maxPlayers);
  • _nameRoom - Название комнаты

  • _sceneName - Название сцены которая должна будет загрузится

  • _maxPlayers - Максимальное количество игроков в ней

6) Удалить у всех игроков свой серверный игровой объект

 SyncHub_ConnectionManager.Instance.DestroyGameObject(GameObject _gameObject);
  • _gameObject - Игровой объект который имеет компонент SyncHub_ConnectionView.cs

7) Заспавнить игровой серверный объект игрока, можно передавать параметры

SpawnObject(GameObject _prefab);
SpawnObject(GameObject _prefab, Vector3 _position);
SpawnObject(GameObject _prefab, Vector3 _position, Vector3 _rotation);
SpawnObject(GameObject _prefab, Vector3 _position, Vector3 _rotation, Vector3 _scale)
  • _prefab - Префаб игрового объекта (НЕ САМ ПРЕФАБ ИГРОКА)

  • _position - Позиция

  • _rotation - Поворот

  • _scale - Скейл (размер)

8) Вызвать RPC функцию у игроков

SyncHub_ConnectionView.SyncHub_RPC(string _methodName, TargetRPC _rpc, params object[] _parameters)
  • _methodName - Наименование метода

  • _rpc - Тип отправки, всем или всем кроме себя

  • _parameters - Передаваемые параметры

Полный пример:

 Получаем свой компонент SyncHub_ConnectionView и отправляем всем 
 включая себя "просьбу" выполнить функцию SendDamage с параметрами "Alex", 25
 this.GetComponent<SyncHub_ConnectionView>().SyncHub_RPC("SendDamage", TargetRPC.All, "Alex", 25);
 [SyncHubRPC]
 public void SendDamage (string name, int damage)
 {
     // получаем данные и выполняем функцию
 }

ВАЖНО! Скрипт в котором будет функция SendDamage с атрибутом [SyncHubRPC] должен находиться на том же объекте что и компонент SyncHub_ConnectionView.cs

9) Подписаться на Stream поток для потоковой передачи данных

SyncHub_ConnectionView.OnGetStream.AddListener(OnGetStream);

private void OnGetStream(SyncHub_ConnectionView сonnectionView, bool isWriting, params object[] coming_values)
{
    //Запись и отправка данных
    if (isWriting)
    {
        сonnectionView.SendNext(params object[]);
    }
    else  //Чтение полученных данных
    {
        var_0 = coming_values[0];
    }
}

Полный пример:

SyncHub_ConnectionView.OnGetStream.AddListener(OnGetStream);

private void OnGetStream(SyncHub_ConnectionView сonnectionView, bool isWriting, params object[] coming_values)
{
    //Запись и отправка данных
    if (isWriting)
    {
      // Вы можете передавать неограниченное количество переменных
      // Поддерживаются типы string, float, bool, int
       сonnectionView.SendNext(65, 0.3f, "test", false);
    }
    else  //Чтение полученных данных
    {
        // Важно!!! В каком порядке отправили, в таком порядке и читаем
        //65 - 0
        //0.3f - 1
        //"test" - 2
        //false - 3
       int var_0 = coming_values[0].ToInt32();
       float var_1 = coming_values[1].ToFloat();
       string var_2 = coming_values[2].ToString();
       bool var_3 = coming_values[3].ToBool();
    }
}

Для удобства конвертации переменных, в плагине написаны дополнительные вспомогательные функции

variable.ToInt32();
variable.ToFloat();
variable.ToBool();

Last updated

Was this helpful?