Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 42
1

PlayerPrefs очень странно работает!

11.11.2018, 19:40. Показов 3571. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!

В первой сцене сделал авторизацию (через Mysql), при удачном входе делаю переход на другую сцену

C++ (Qt)
1
SceneManager.LoadScene("Scene2");

и там использую сохраненное ранее имя игрока.

C++ (Qt)
1
enteredLogin =PlayerPrefs.GetString("enteredLogin");

Всё хорошо. После удачного логина происходит переход на вторую сцену, но засада в том, что этот переход происходит не только в запущенном в Unity приложении, но и в webgl версии в браузере, и даже в браузере телефона, подключенного даже не через wifi (я перестраховался). Я почему-то думал, что PlayerPrefs - это локальное хранилище данных. А сейчас оказывается, что оно общее для всех, ничего не понимаю. Как фича это супер!!! Сразу на все клиенты распространяются PlayerPrefs.

Но ведь кроме меня в мою игру захотят поиграть и другие юзеры, попытаются авторизнуться, и у всех других слетит сцена.

Мне казалось, что PlayerPrefs - это типа кука, пока не пропишешь нужные переменные, он будет пустой. Но оказалось, я был неправ.

И еще подвопрос - обнуляется ли PlayerPrefs при последующих перезапусках игры (если его не трогать)?

Спасибо всем заранее!

В принципе, я уже начал копать в сторону сохранения данных в текстовом файле, всё работает, но как-то ненадежно (регулярно прилетают крэши приложения из-за ошибок доступа к файлу, короче, ненадежно это)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2018, 19:40
Ответы с готовыми решениями:

PlayerPrefs.GetInt и PlayerPrefs.SetInt - логика записи
Всем привет! Есть такая штука как запись PlayerPrefs, прошу пояснить логику, так как пока не...

PlayerPrefs не работает
Есть скрипт сохранения рекорда, вроде все правильно. Но в юньке record всегда стоит 0. Я думаю что...

Странно работает RayCact
срабатываем момент входа начала луча в центре объекта. обычный луч для определения под собой не...

Очень странно работает Wi-Fi на ноутбуке
Дала мне знакомая ноутбук поправить старенький. ASUS "A3Fc". Ну в общем вкатал я на него ХРюшу SP3...

3
3353 / 1769 / 1025
Регистрация: 26.10.2018
Сообщений: 5,198
11.11.2018, 19:58 2
Лучший ответ Сообщение было отмечено romingood как решение

Решение

Цитата Сообщение от romingood Посмотреть сообщение
Всё хорошо. После удачного логина происходит переход на вторую сцену, но засада в том, что этот переход происходит не только в запущенном в Unity приложении, но и в webgl версии в браузере, и даже в браузере телефона, подключенного даже не через wifi (я перестраховался).
А при чем тут переход на следующую сцену и плеерпрефс? У тебя беда с аутентификацией.
Unity Editor и браузер используют разные хранилища, первый - реестр, второй IndexedDB.
Тут расписано, где хранятся сохранки https://docs.unity3d.com/Scrip... Prefs.html
И еще подвопрос - обнуляется ли PlayerPrefs при последующих перезапусках игры (если его не трогать)?[/quote]
Нет. Если ты вручную не сотрешь файлы или же не юзанешь PlayerPrefs.DeleteAll().
Всё что делает плеерпрефс это сохраняет на хард диск данные, это не всегда одно и то же место (ссылка выше), но это всегда локальное сохранение.
Цитата Сообщение от romingood Посмотреть сообщение
В принципе, я уже начал копать в сторону сохранения данных в текстовом файле, всё работает, но как-то ненадежно (регулярно прилетают крэши приложения из-за ошибок доступа к файлу, короче, ненадежно это)
https://docs.unity3d.com/Scrip... mJson.html
https://docs.unity3d.com/ru/53... oJson.html
1
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 42
12.11.2018, 02:39  [ТС] 3
Спасибо огромное за ответ!

Не стирает данные при перезапуске игры! Это просто отлично!

А ошибку с авторизацией я нашел, оказывается, я сам отправлял ВСЕМ юзерам уведомление об успешном логине.

Неделя бессонных ночей, передоз информации, затупил.

Еще раз спасибо!

Добавлено через 18 минут
Забыл важный момент.

Как думаете? Можно ли хранить хэш авторизованного юзера в PlayerPrefs? Безопасно ли? Если нет, то где тогда хранить?
0
3353 / 1769 / 1025
Регистрация: 26.10.2018
Сообщений: 5,198
12.11.2018, 10:27 4
С вопросами безопасности никогда не работал, это не ко мне))
0
12.11.2018, 10:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2018, 10:27
Помогаю со студенческими работами здесь

Очень странно работает компьютер
Всем привет,не знаю что делать,может кто поможет. Мой комп не такой уж и старый (собрали в...

Поиск WIN7 очень странно работает
Со вчерашнего дня поиск в win7 стал избирательным. Посмотрите, при вводе в окно "найти программы и...

Очень странно работает CMD в Windows 8.1
Написал сценарии для копирования папки c сетевого диска @echo off chcp 1251 set...

Кнопка меняет алгоритм работы. Очень, очень странно!
Скидываю два файла один чистый скрипт(PPPRRR.m), второй gui(test). При запуске скрипта(PPPRRR.m)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru