Массив в мультиплеере
|
|
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, Это я так сказал, на самом деле нужны передать числа которые укажет сервер
Огромное спасибо вам за ответы
|
|
| |