風を保存する
CoddyのUnityジャーニー「Unityのゲームアーキテクチャ」セクションの一部。レッスン 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のゲームアーキテクチャのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド