Функции
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?