Сохраняем ветер
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 26 из 64.
При каждой загрузке сборка загружает все ресурсы в том виде, в котором они были при сборке, поэтому при каждом запуске ветер игрока снова будет равен 2. PlayerPrefs сохраняет его, а Start записывает его обратно в ресурс.
Задание
ЛегкоСохраняй ветер игрока для следующей игры.
- В
WindVaneкаждый раз, когда стрелка меняет ветер, вызывайPlayerPrefs.SetFloat("Wind", wind.strength);. - В
Start, передShow(), еслиPlayerPrefs.HasKey("Wind"), присвойwind.strengthзначениеPlayerPrefs.GetFloat("Wind"). Новый игрок сохраняет значение 2 из ресурса.
Нажми «Играть», измени ветер, нажми «Стоп» и «Играть»: ветер останется прежним. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class WindVane : MonoBehaviour
{
public TMP_Text windText;
public WindSettings wind;
void Start()
{
Show();
}
void Update()
{
if (Keyboard.current.upArrowKey.wasPressedThisFrame)
{
wind.strength = Mathf.Min(wind.strength + 1f, 5f);
Show();
}
if (Keyboard.current.downArrowKey.wasPressedThisFrame)
{
wind.strength = Mathf.Max(wind.strength - 1f, 0f);
Show();
}
}
void Show()
{
windText.text = "Wind: " + wind.strength;
}
}
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыКомпоненты работают вместеПовторение: модульная турельПовторение: спаренная пушка4Сериализованные данные
Сериализуемые классыСписки в инспектореПеречисления в инспектореПовторение: таблица добычиПовторение: определяем добычу2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействияПовторение: ближайший в пределах досягаемости5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиСохраняем ветерВолны как данныеПовторение: база предметовПовторение: покупка в магазинеПотренируйтесь самостоятельно: Песочница Unity