Unity3d 保存数据,关于关闭UI

Unity3d 保存数据,关于关闭UI,unity3d,Unity3d,可能有一天我搞不清楚,我有一个连接到画布的UI,在这个UI上我有文本和两个按钮,关闭和播放,在每个按钮上我有一个特定的按钮点击,例如hidepanel,加载另一个场景,问题是每次你重新启动游戏时,这个窗口总是出现,我不知道如何保存数据,玩家点击其中一个按钮后,当你重新进入游戏时,这个窗口将不再显示。我原以为PlayerPrefs会帮我解决这个问题,因为我用它来保存帐户,但问题是,据我所知,我需要保存对象,PlayerPrefs似乎不这样做,但只适用于字符串、数字和浮点数。我读过关于序列化的内容,

可能有一天我搞不清楚,我有一个连接到画布的UI,在这个UI上我有文本和两个按钮,关闭和播放,在每个按钮上我有一个特定的按钮点击,例如hidepanel,加载另一个场景,问题是每次你重新启动游戏时,这个窗口总是出现,我不知道如何保存数据,玩家点击其中一个按钮后,当你重新进入游戏时,这个窗口将不再显示。我原以为PlayerPrefs会帮我解决这个问题,因为我用它来保存帐户,但问题是,据我所知,我需要保存对象,PlayerPrefs似乎不这样做,但只适用于字符串、数字和浮点数。我读过关于序列化的内容,但从我找到的所有示例中,我了解了如何只保存玩家的位置:(

下面是我的按钮点击和我的仪表板的照片


您只需要存储状态,int值为0或1。如果需要保存更多信息,请创建一个包含所有所需信息的类。添加Serializable属性,以便您可以转换为json并在PlayerPrefs中作为字符串存储。请看一看,我在帖子中编辑了代码,方向正确吗?是和否。PlayerData必须具有序列号lizable属性。您可以转换为json并保存ok。但是您首先创建一个新的PlayerData,并用HidePanel返回的任何内容替换它。我相信smg不在那里。您只需要存储状态,int为0或1。如果您需要保存更多,则创建一个包含所有所需信息的类。添加Serializable属性,以便您可以转换为json并以字符串形式存储在PlayerPrefs中。请看一看,我在帖子中编辑了代码,我的方向正确吗?是和否。PlayerData必须具有可序列化属性。您可以转换为json并保存为ok。但您首先创建一个新的PlayerData并用HidePanel返回的任何内容替换它。我相信smg不正确。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using UnityEngine.UI;
using System;

[Serializable]
public class PlayerData
{

    public ButtonTutorial tutorial;


   void Save()
    {

        PlayerData saveData = new PlayerData();
        saveData = tutorial.HidePanel();



        string jsonData = JsonUtility.ToJson(saveData);
        PlayerPrefs.SetString("Tutorial", jsonData);
        PlayerPrefs.Save();
    }