Как сделать сохранение в unity?

  Рет қаралды 12,763

Максим Крюков

Максим Крюков

3 жыл бұрын

Рассматриваем 3 варианта сохранения в юнити. Разбираем 3 варианта сохранения - PlayerPrefs, JSON, Binary Serialization.
В качестве бонуса приведен дополнительный пример с бинарной сериализацией.
Подписывайтесь на канал!
Ссылка на исходный код - github.com/gaitavr/saveSystem
Поддержка канала:
Patreon - www.patreon.com/user?u=32502669
В крипте:
BTC - 16WmTb4VTFGYrwEjjnMKNNMMzsMB1rPEqD
ETH - 0x8d35406f8317b846528d0a9ea4a34ce59968dff2
XRP - rLW9gnQo7BQhU6igk5keqYnH3TVrCxGRzm (TAG - 1438215071)
LTC- MNSWdzdVsUMnozSU5HhUPEscfxaUK3Fdck
#юнитисохранение #serialization #json

Пікірлер: 26
@user-tb7yn5yy3g
@user-tb7yn5yy3g 3 жыл бұрын
Довольно таки подробно.Кстати чтобы твои уроки было легче найти и было больше подписчиков добавляй хештеки в описание под видео,для того,чтобы больше пользователей могли посмотреть контент
@TitikUniverse
@TitikUniverse 2 жыл бұрын
Это просто великолепно! Обожаю этот канал
@ecosmile4212
@ecosmile4212 2 жыл бұрын
Огромное спасибо за урок, узнал много нового
@user-nm5zh2zb8c
@user-nm5zh2zb8c 3 жыл бұрын
хороший контент и код
@mastervolodsobeck5176
@mastervolodsobeck5176 Жыл бұрын
Благодарю, четко и понятно.
@romanlitvinsky4485
@romanlitvinsky4485 7 ай бұрын
Спасибо за видео, опирался на него, чтобы сделать систему сохранения для своего проекта. В моём случае мне надо было загружать сохранённые данные каждый раз при старте игры. В такой реализации бинарного сериализатора ловил 2 ошибки. Первая - это попытка загрузить данные без предварительного сохранения. FileStream ругнётся, что такого файла нет и выбросит исключение, для этого, в методе Load нужно изначально проинициализировать переменную SaveData, изменить метод Open на метод OpenOrCreate. Вторая ошибка вытекает из первой, файл у нас создался, но он пустой и десериализовывать нечего, для этого оборачиваем блок десериализации в try catch. Случай из практики, может, кому будет это полезно.
@_mirai
@_mirai 3 жыл бұрын
Спасибоо!
@Carrion-Crow
@Carrion-Crow Жыл бұрын
как по мне то лучше для объектов который должны сохранятся делать родительский абстрактный класс который будет наледоватся от интерфеса "сторедж" в котором будут методы по закгрузке и сохранению состояний эти методы будут использовать абстрактный метод который будет возвращать спиок параметров или каскад параметров который нужно сохранять или загружать. А сохранение делать так, при нажатии на кнопку сохранить собрать все объекты относятся к интерфейсу сторедж и по ним по всем пройтись забрать их данные упаковать и сохранить. Если же у нас опен ворлд какой то, и мы не хотим сильно много данных сохранять, то при нажатии на сохранение делаем некую сферу нужного нам радиуса и что в нее попало из объектов стореджа то и сохраняем. ЗЫ это мысли в слух чисто для себя
@vitalks7300
@vitalks7300 3 жыл бұрын
Привет. Классный урок! Я в своем проекте начал использовать метод бинарной-сериализации и на ПК работает все отлично (сохраняет файл, загружает, удаляет). Но когда загружаю на андройд, то игра просто вылетает через секунду после загрузки сцены. Проблема думаю в Application.dataPath + "/saves/savePL.slf" или у андройда не должно возникать проблем с путем?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Привет, лучше записывать в PersistantDataPath
@homosanians
@homosanians 2 жыл бұрын
А если обьектов на сцене от 100 штук но хочу сохранить все? Не писать же id для каждого. В таком случае можно ли написать для editor скрипт, который при пустом значении id, сделает случайный? Если я ничего не упустил, то он должен стать постоянным
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Можно айди хоть из game object брать
@DarkDGG
@DarkDGG 2 жыл бұрын
@@gaitavr1992 не лучший вариант, InstanceId может меняться. Лучше использовать тогда имя объекта (главное не повторять их)
@WanP1su
@WanP1su 2 жыл бұрын
А что это за расширение для VS которое подсвечивает серым параметры/типы?
@TheDEFCHER
@TheDEFCHER 11 ай бұрын
це Rider
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Какой способ используете вы?
@user-fn4us1te7n
@user-fn4us1te7n 3 жыл бұрын
ProtoBuf
@tarasklymenko5211
@tarasklymenko5211 3 жыл бұрын
сериализуем объект в json и записуем в базу данных
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Проблемы были с ним?
@tarasklymenko5211
@tarasklymenko5211 3 жыл бұрын
@@gaitavr1992 проблем не было)
@tatapstar
@tatapstar 3 жыл бұрын
Сериализация Odin-Json + бинарная для конфигов. Ну а в общем каждая система может использовать угодный для нее способ загрузки)
@dmitriypermyakov5402
@dmitriypermyakov5402 3 жыл бұрын
Чем я пользуюсь? Да я два слова из десяти с трудом понимаю!
@schahtade
@schahtade 2 жыл бұрын
+, только я понимаю только предлог
@Baitur996
@Baitur996 10 ай бұрын
вы куда то спешите?Вообще не понятно обьяснил я тут даже твое обьеснение про PlayerPrefs не понял хотя я знаю что это такое тут даже не сказанно какой код это binary или json понятно почему у тебя всего лишь 16к подпишшиков
Сохранение игры в файл в Unity
20:13
Лавка Разработчика
Рет қаралды 15 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 118 #shorts
00:30
[柴犬ASMR]曼玉Manyu&小白Bai 毛发护理Spa asmr
01:00
是曼玉不是鳗鱼
Рет қаралды 47 МЛН
100❤️
00:19
Nonomen ノノメン
Рет қаралды 38 МЛН
Joven bailarín noquea a ladrón de un golpe #nmas #shorts
00:17
Как ОПТИМИЗИРУЮТ ИГРЫ
11:00
Atix
Рет қаралды 352 М.
[UNITY] Что такое Scriptable Objects в Unity?
7:11
n.fridman
Рет қаралды 6 М.
Делегаты и события в unity за 10 минут
11:14
Максим Крюков
Рет қаралды 30 М.
Паттерн наблюдатель в unity3D
6:56
Максим Крюков
Рет қаралды 25 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 118 #shorts
00:30