예제 #1
0
    public static void SaveSystemSettings(SystemSettingsData ssd)
    {
        BinaryFormatter bf     = new BinaryFormatter();
        string          path   = Application.persistentDataPath + "/systemSettings.bin";
        FileStream      stream = new FileStream(path, FileMode.Create);

        bf.Serialize(stream, ssd);
        stream.Close();
    }
예제 #2
0
        // Start is called before the first frame update
        protected void Start()
        {
            settings = GetComponent <SystemSettings>();

            if (settings && SaveSystemXml.CheckFileExsits())
            {
                SystemSettingsData settingsData = SaveSystemXml.LoadSettings();
                settings.fullscreen     = settingsData.Fullscreen;
                settings.resolution     = settingsData.Resolution;
                settings.vsyncCount     = settingsData.VsyncCount;
                settings.graphicsPreset = settingsData.GraphicsPreset;
                settings.masterVolume   = settingsData.MasterVolume;
                settings.effectsVolume  = settingsData.EffectsVolume;
            }
            else
            {
                SaveSystemXml.SaveSettings(settings);
            }

            if (resolutionDropdown)
            {
                FindSupportedResolutions();
                Screen.SetResolution(settings.resolution[0], settings.resolution[1], Screen.fullScreen);
            }

            if (qualityDropdown)
            {
                qualityDropdown.value = settings.graphicsPreset;
                qualityDropdown.RefreshShownValue();
                QualitySettings.SetQualityLevel(settings.graphicsPreset);
            }

            if (fullscreenDropdown)
            {
                if (settings.fullscreen == true)
                {
                    fullscreenDropdown.value = 1;
                    fullscreenDropdown.RefreshShownValue();
                }
                else
                {
                    fullscreenDropdown.value = 0;
                    fullscreenDropdown.RefreshShownValue();
                }

                Screen.fullScreen = settings.fullscreen;
            }

            if (vsyncDropdown)
            {
                vsyncDropdown.value = settings.vsyncCount;
                vsyncDropdown.RefreshShownValue();
                QualitySettings.vSyncCount = settings.vsyncCount;
            }
        }
예제 #3
0
    public void Awake()
    {
        progression = GameObject.FindGameObjectWithTag("ProgressChecker").GetComponent <TextMeshProUGUI>();
        GameObject[] objs = GameObject.FindGameObjectsWithTag("LevelLoader");
        if (objs.Length > 1)
        {
            Destroy(this.gameObject);
            return;
        }
        GameObject         Tog = GameObject.FindGameObjectWithTag("FullAccess");
        SystemSettingsData ssd = SaveSystem.LoadSystemSettings();

        if (ssd == null)
        {
/*            GameObject map = GameObject.Find("/Canvas/MapContainer/Map");
 *          SaveSystem.mapScroll = map.gameObject.GetComponent<RectTransform>().transform.position;*/
            ssd = new SystemSettingsData();
        }
        Tog.gameObject.GetComponent <Toggle>().isOn = ssd.fullAccessEnabled;
        LevelData[] temp = SaveSystem.LoadLevels();
        SaveSystem.getAllLevels();
        if (temp == null)
        {
            SaveSystem.levelData = SaveSystem.getAllLevels();
            SaveSystem.SaveLevels(SaveSystem.levelData);
        }
        else if (temp.Length > SaveSystem.levelData.Length)
        {
            LevelData[] temp2 = SaveSystem.levelData;
            SaveSystem.levelData = new LevelData[temp.Length];
            for (int i = 0; i < SaveSystem.levelData.Length; i++)
            {
                for (int j = 0; j < temp2.Length; j++)
                {
                    if (temp[i].index == temp2[j].index)
                    {
                        SaveSystem.levelData[i] = temp2[j];
                        break;
                    }
                }
                SaveSystem.levelData[i] = temp[i];
            }
        }
        else
        {
            SaveSystem.levelData = temp;
        }

        /*        foreach (LevelData l in SaveSystem.levelData)
         *          Debug.Log(l.ToString());*/

        progression.SetText(SaveSystem.completedLevelCount + "/" + SaveSystem.totalLevelCount);
        DontDestroyOnLoad(this.gameObject);
    }
예제 #4
0
    public static void DisableFullAccessMode()
    {
        bool foundend = false;

        for (int i = 0; i < SaveSystem.levelData.Length; i++)
        {
            if (!levelData[i].levelPassed)
            {
                levelData[i].levelAccessible = false;
            }
            else if (levelData[i].levelPassed && foundend)
            {
                levelData[i].levelAccessible = false;
                //levelData[i].levelPassed = false; // erases win data
            }

            if (!foundend)
            {
                if ((i - 1) >= 0 && levelData[i - 1].levelPassed && !levelData[i].levelPassed)
                {
                    levelData[i].levelAccessible = true;
                    foundend = true;
                }
            }
        }
        fullAccessMode = false;
        if (systemSettingsData == null)
        {
            systemSettingsData = new SystemSettingsData();
        }
        systemSettingsData.fullAccessEnabled = false;
        GameObject map = GameObject.Find("/Canvas/MapContainer/Map");

/*        mapScroll = map.gameObject.GetComponent<RectTransform>().transform.position;
 *      systemSettingsData.mapScroll[0] = mapScroll.x;
 *      systemSettingsData.mapScroll[1] = mapScroll.y;
 *      systemSettingsData.mapScroll[2] = mapScroll.z;*/
        SaveLevels(levelData);
        LoadLevels();
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        SaveSystemSettings(systemSettingsData);
    }
예제 #5
0
    public static void EnableFullAccessMode()
    {
        for (int i = 0; i < SaveSystem.levelData.Length; i++)
        {
            levelData[i].levelAccessible = true;
        }
        fullAccessMode = true;
        if (systemSettingsData == null)
        {
            systemSettingsData = new SystemSettingsData();
        }
        systemSettingsData.fullAccessEnabled = true;

/*        GameObject map = GameObject.Find("/Canvas/MapContainer/Map");
 *      mapScroll = map.gameObject.GetComponent<RectTransform>().transform.position;
 *      systemSettingsData.mapScroll[0] = mapScroll.x;
 *      systemSettingsData.mapScroll[1] = mapScroll.y;
 *      systemSettingsData.mapScroll[2] = mapScroll.z;*/
        SaveLevels(levelData);
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        SaveSystemSettings(systemSettingsData);
    }
예제 #6
0
    public static SystemSettingsData LoadSystemSettings()
    {
        string path = Application.persistentDataPath + "/systemSettings.bin";

        if (File.Exists(path))
        {
            BinaryFormatter bf     = new BinaryFormatter();
            FileStream      stream = new FileStream(path, FileMode.Open);
            systemSettingsData = bf.Deserialize(stream) as SystemSettingsData;
            stream.Close();
            fullAccessMode = systemSettingsData.fullAccessEnabled;

/*            mapScroll.x = systemSettingsData.mapScroll[0];
 *          mapScroll.y = systemSettingsData.mapScroll[1];
 *          mapScroll.z = systemSettingsData.mapScroll[2];*/
            return(systemSettingsData);
        }
        else
        {
            Debug.LogError("System Settings save file not found.");
            return(null);
        }
    }