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();
    }

}

 

赤字の辺りが追加部分だったと思います。

(いろいろ触ったので抜けているところもあるかも)

 

これで、例えば、青で終了したら次に始めるときも

スタート画面は青になっています。