Unity視線アプリscene移動⑧ ドロップダウンを保存
少し悩みましたが、うまく行きました。
シーンが二つになって、頭の中がややゴチャゴチャしてきています。
今回、お世話になったのはこちらです。
【Unity】ドロップダウンの値を変更/保存/取得する – Unityの使い方|初心者からわかりやすく (ame-name.com)
今作っているアプリは
スタート画面であるこちらのOpenシーンの空オブジェクトに
このスクリプトをつけています。
この中に、いろいろ書き込みました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ColorChanger1 : MonoBehaviour
{
//Dropdownを格納する変数
[SerializeField] private Dropdown dropdown;
public static int colornum;
//ドロップダウンを保存
void Start()
{
colornum = PlayerPrefs.GetInt("RESOLUTION", 1); // ロード
SetResolution(colornum);
dropdown.value = colornum; // ドロップダウンの値を変更
}
// Update is called once per frame
void Update()
{
//DropdownのValueが0のとき
if (dropdown.value == 0)
{
colornum = 0;
}
//DropdownのValueが1のとき
else if (dropdown.value == 1)
{
colornum = 1;
}
//DropdownのValueが2のとき
else if (dropdown.value == 2)
{
colornum = 2;
}
//DropdownのValueが3のとき
else if (dropdown.value == 3)
{
colornum = 3;
}
//DropdownのValueが4のとき
else if (dropdown.value == 4)
{
colornum = 4;
}
else if (dropdown.value == 5)
{
colornum = 5;
}
else if (dropdown.value == 6)
{
colornum = 6;
}
else if (dropdown.value == 7)
{
colornum = 7;
}
PlayerPrefs.SetInt("RESOLUTION", colornum); // セーブ
PlayerPrefs.Save();
Debug.Log("途中ですがドロップダウン" + colornum);
}
public void SetResolution(int resInt)
{
colornum = colornum;
}
//ドロップダウンの保存。終了時に呼び出される
private void OnApplicationQuit()
{
PlayerPrefs.SetInt("RESOLUTION", colornum); // セーブ
Debug.Log("終了時ドロップダウン" + colornum);
PlayerPrefs.Save();
}
}
赤字の辺りが追加部分だったと思います。
(いろいろ触ったので抜けているところもあるかも)
これで、例えば、青で終了したら次に始めるときも
スタート画面は青になっています。