Сериализация Unity клиента

Сериализация Unity клиента

Сообщение nicodrive 01 июн 2013, 09:05

нашел код обладающий следующими фишками дающими сериализацию:
Синтаксис:
Используется csharp
[DataMember(Code = (byte)ParameterKey.ActorProperties, IsOptional = true)]
        public Hashtable ActorProperties { get; set; }

        [DataMember(Code = (byte)ParameterKey.Broadcast, IsOptional = true)]
        public bool BroadcastActorProperties { get; set; }


На клиенте не могу использовать, либо сериализация не пашет на клиенте ( глупо как то ) либо я чтото в namespacах не указал...

У кого нибудь идеи есть?
nicodrive
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2011, 07:11

Re: Сериализация Unity клиента

Сообщение Woolf 01 июн 2013, 09:09

На клиенте не могу использовать

Вам религия не позволяет? Или папа запретил? Что значит "не могу" ?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Сериализация Unity клиента

Сообщение nicodrive 01 июн 2013, 09:14

Означает, что на клиенте не находит данный атрибут DataMember.
nicodrive
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2011, 07:11

Re: Сериализация Unity клиента

Сообщение nicodrive 01 июн 2013, 09:18

нашел dll ку в которой DataMember описан
Синтаксис:
Используется csharp
using Photon.SocketServer.Rpc;
nicodrive
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2011, 07:11

Re: Сериализация Unity клиента

Сообщение nicodrive 01 июн 2013, 09:20

придется писать генератор кода... сериализатора, как я понял, на клиенте нет.
nicodrive
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2011, 07:11

Re: Сериализация Unity клиента

Сообщение afrokick 23 июн 2013, 21:14

DataMember используется для операций => сервер не может отправить клиенту операцию.

Для сериализации класса используй XmlSerializer и StringWriter/StringReader:

client side:
Синтаксис:
Используется csharp
var serializer = new XmlSerializer(typeof(ChatItem));
var writer = new StringWriter();

serializer.Serialize(writer, item);

var pars = new Dictionary<byte, object>();
pars.Add((byte)1, writer.ToString());
 


server side:
Синтаксис:
Используется csharp
var serializer = new XmlSerializer(typeof(ChatItem));
var reader = new StringReader(operation.ChatItem);//<- public string ChatItem{get;set;} в операции с дата мембер DataMember(Code =(byte)1)
var chatItem = serializer.Deserialize(reader) as ChatItem;
 


ChatItem - общий класс для клиента и сервера
Аватара пользователя
afrokick
UNIт
 
Сообщения: 83
Зарегистрирован: 05 дек 2010, 23:36
Skype: alexandersosnovskiy
  • Сайт

Re: Сериализация Unity клиента

Сообщение Johnson 24 июн 2013, 16:11

Открою небольшой секрет. Юнити прекрасно работает вообще без неймспейсов. Шарп знаю мало, но у меня сложилось вчепятление, что они нужны только для удобства...
Johnson появился в результате деления на null. Кривокодер-рецидивист. Кусается.
Хорошо, что в больнице хирурги не такие же, как новички на этом форуме. Пришел вытащить гвоздь из руки, а они яйца оттяпали...
ProgrammerNotFoundException on line 0!
Аватара пользователя
Johnson
UNIверсал
 
Сообщения: 447
Зарегистрирован: 09 июн 2013, 16:31
Откуда: Пермь
Skype: Johnson1893
  • Сайт
  • ICQ

Re: Сериализация Unity клиента

Сообщение nicodrive 05 июл 2013, 13:25

Johnson писал(а):Открою небольшой секрет. Юнити прекрасно работает вообще без неймспейсов. Шарп знаю мало, но у меня сложилось вчепятление, что они нужны только для удобства...


Unity херова работает с неймспейсами (monobehaviour наследующие классы), точнее вообще не работает. Это ее огромный минус. Это не удобство, это важная вещь, когда программа выбирается за рамки небольшого проекта.
nicodrive
UNец
 
Сообщения: 20
Зарегистрирован: 19 июл 2011, 07:11


Вернуться в Photon

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2