Пятница, 26 Апреля 2024, 05:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Массив в мультиплеере
Массив в мультиплеере
zisXДата: Четверг, 26 Марта 2015, 05:15 | Сообщение # 1
Neto Zis
Сейчас нет на сайте
Короче такого суть, нужно было на клиенте создать двумерный массив int ( с рандомными значениями ), потом с помощью обычной unity3d network передать этот массив, но массив не поддерживается rpc, так вот сначала я делал так переносил массив в строку с разделителями, передавал как строку, потому создавал массив и заполнял его из строки сплитом, но этот вариант работает когда значения малы допустим 256*256, мне же нужны числа идущие на тысячи на тысячу, если есть идеи, то напишите пожалуйста.

YellowAfterlifeДата: Четверг, 26 Марта 2015, 10:11 | Сообщение # 2
Сейчас нет на сайте
С Unity RPC все довольно странно. Вызывает подозрения, что им занимались те же люди, что сделали встроенный API для геймпадов.

Есть несколько вариантов:
1. Запаковать массив более плотно, преобразовав его в буфер, и после вызвав Convert.ToBase64. Это подразумевает 4 байта base64 на каждые 3 байта буфера с массивом, что обычно вполне приемлемо. Тут есть пример кода.
2. Воспользоваться незадокументированным фактом того, что по RPC кроме описанных в документации типов можно еще отправлять массив байт (byte[]). Полагаю, преобразование массива int в массив byte и обратно не требует дополнительных пояснений. Данный трюк используется тут чтобы отправить/принять сериализированный класс.


OpenGOOДата: Четверг, 26 Марта 2015, 11:10 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Размер типа char равен 2 байтам.
Размер типа int равен 4 батам.

Зная количество чисел в массиве, можно расчитать размер массива символов (char[]), а потом уже из этого массива создать строку (string).

Добавлено (26 марта 2015, 11:10)
---------------------------------------------
zisX, зачем собственно надо передавать случайные значения, если можно передать seed?


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Четверг, 26 Марта 2015, 11:18
zisXДата: Четверг, 26 Марта 2015, 14:18 | Сообщение # 4
Neto Zis
Сейчас нет на сайте
OpenGOO, Это я так сказал, на самом деле нужны передать числа которые укажет сервер

Огромное спасибо вам за ответы


Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Массив в мультиплеере
  • Страница 1 из 1
  • 1
Поиск:

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