2016-07-27 2 views
0

Я использую статический класс с несколькими статическими переменными для сохранения таких свойств, как «currentPlayer», «currentLevel», «currentScore» и т. Д. В игре. Они называются очень часто на протяжении всего игрового потока. Но не часто в кадре. Весь этот класс ссылается более 100 раз в разных точках, а также несколько раз в одном месте. Я хочу знать, подходит ли это подход или я должен использовать PlayerPrefs, или может быть другой хороший подход? Просто упомянуть, что эти переменные являются временными и их не нужно сохранять, но их нужно сохранять взад и вперед в разных игровых сценах. Игра предназначена для мобильных телефонов с целевым объемом 512 МБ оперативной памяти и низким процессором. ТИАИспользование PlayerPrefs vs staticVariable в единстве

+1

Звучит отлично. PlayerPrefs - это не одно и то же; который используется для загрузки/сохранения таких значений. Использование одноэлементного паттерна немного условно, но я не думаю, что это конец света. – Droppy

ответ

1

Если эти переменные значения, которые должны быть сохранены, такие как игрок забивает, в настройках плеера, такие как объем, уровень затем использовать PlayerPrefs .Using PlayerPrefs, как убить двух зайцев одним выстрелом. Если вы используете переменную static для хранения таких значений, вам все равно нужно сохранить эти значения в какой-то момент с PlayerPrefs, а это значит, что теперь вы используете переменную static и PlayerPrefs.

Если эти переменные являются значениями, которые не нужно сохранять, используйте переменную static.

+0

Спасибо @Programmer –

0

Я думаю, что подход Unity должен использовать «Scriptable Objects», если вы не хотите сохранять эти данные. вы можете установить эти переменные в редакторе, а затем использовать их в игре или изменить их в игре.

1

Стоит немного уточнить ответ программиста, что статические или классные переменные сохраняются на протяжении всего сеанса. По мере удаления объектов класса или изменения сцены вы все равно получите доступ к этим значениям. PlayerPrefs похож на следующий уровень, который фактически записывается в энергонезависимое место на устройстве.