Пятница, 27 Декабря 2024, 23:48

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Насколько правелен такой подход к коду
x_MedwedДата: Понедельник, 17 Августа 2015, 17:02 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Вот написал небольшой код сохранения на C# под Unity 5 хочу спросить на сколько он правилен то есть такой подход.

Код с перемеными


Сам код загрузки и созранения


Эти два кода вешаю на кнопки

Код с вызовом функцыи загрузки


Код с вызовом функцыи сохранения


Сообщение отредактировал x_Medwed - Понедельник, 17 Августа 2015, 17:03
berilДата: Понедельник, 17 Августа 2015, 18:02 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Ну желательно using использовать.
Код

BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = new FileStream("test.dat", FileMode.OpenOrCreate))
{      
       formatter.Serialize(бла бла);
}

Бинарная сериализация работает в пределах инфраструктуры CLI, возникнут проблемы при переносе на другие платформы.
Если не хочешь зависить от платформы использую JSON и XML сериализацию
И да GameObject, Transform и прочие классы юнити нельзя сериализовать стандартными методами




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
x_MedwedДата: Понедельник, 17 Августа 2015, 18:09 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
beril, Спасибо почитаю учту
berilДата: Понедельник, 17 Августа 2015, 18:48 | Сообщение # 4
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
И да Resharper скачай и поставь, он подскажет, как улучшить код biggrin



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
x_MedwedДата: Вторник, 25 Августа 2015, 21:08 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
вот еще один код

можете взглянуть на него и сказать что тут не правильно написано вроде все работает но сто пудов чето не так
писал сам



И да вот такая ошибка



Помогите пожалуйста


Сообщение отредактировал x_Medwed - Вторник, 25 Августа 2015, 21:18
programMainДата: Пятница, 26 Октября 2018, 04:42 | Сообщение # 6
частый гость
Сейчас нет на сайте
Ну во первых не вздумай ставить решарпер. Это тебе только навредит. А во вторых - сериализация плохой вариант в любом проявлении. Открой MemoryStream и через BinaryWriter запиши в него все что надо, и сохрани просто в файл, можешь зашифровать после этого по желанию).
zhuravelsvДата: Суббота, 27 Октября 2018, 18:00 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Цитата programMain ()
А во вторых - сериализация плохой вариант в любом проявлении

А как в микросервисной архитектуре да и вообще в почти любой другой передавать данные по сети? разработчики protobuf'a (из гугла, которые пишут свой механизм "быстрой и компактной" сериализации) удивились бы этому заявлению


Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
programMainДата: Вторник, 06 Ноября 2018, 03:02 | Сообщение # 8
частый гость
Сейчас нет на сайте
Цитата zhuravelsv ()
А как в микросервисной архитектуре да и вообще в почти любой другой передавать данные по сети? разработчики protobuf'a (из гугла, которые пишут свой механизм "быстрой и компактной" сериализации) удивились бы этому заявлению

Сериализация - хорошо. Но начинающий программист должен соблюдать несколько правил для нее:

1. Декорируйте атрибутом [Serializable] типы, реализующие интерфейс ISerializable;
2. Убедитесь, что все сериализуемые члены декорированы атрибутом [Serializable] и корректно сериализуются;
3. Реализуя интерфейс ISerializable, не забудьте реализовать конструктор сериализации (Ctor(SerializationInfo, StreamingContext));
4. В запечатанных типах установите модификатор доступа private для конструктора сериализации, в незапечатанных — protected;
5. В незапечатанных типах, реализующий интерфейс ISerializable, сделайте метод GetObjectData виртуальным;
6. Проверьте, что в методе GetObjectData сериализуются все необходимые члены, включая члены базового типа, если он есть.

Поэтому начинающим я советую просто взять MemoryStream и записать в определенном порядке все что ему нужно передать по сети, а с другой стороны в том же порядке прочитать. Все... На этом их гемор закончится. Я не говорю, что сериализация - это плохо. Просто эта морока для хотя бы мидлов уже...
  • Страница 1 из 1
  • 1
Поиск:

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