예제 #1
0
    void Start()
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            prevRes.SetActive(false);
            nextRes.SetActive(false);
            resolution.GetComponent <TextMesh>().text = "";
            ResolutionText.GetComponent <TextMesh>().characterSize = 0;
        }

        else
        {
            prevRes.SetActive(true);
            nextRes.SetActive(true);
            resolution.GetComponent <TextMesh>().text = "RESOLUTION";
            ResolutionText.GetComponent <TextMesh>().characterSize = 0.05f;
            // ResolutionText.GetComponent<TextMesh>().alignment = TextAnchor.MiddleCenter;
        }

        //resolutionUnique = Screen.resolutions;
        resolutions = Screen.resolutions;
        //resolutions = resolutionUnique.Distinct().ToList();
        //int index_res=0;
        //    foreach(Resolution resUniq in resolutionUnique)
        //    {

        //    foreach (Resolution res in resolutions)
        //        {
        //        if (resUniq.Equals(res))
        //          {
        //            resolutions[index_res] = resUniq;

        //            index_res++;
        //            }
        //        }
        //    }

        currentResolutionIndex = PlayerPrefs.GetInt(RESOLUTION_PREF_KEY, 0);
        //  resolutions = Screen.resolutions;
        SetResolutionText(resolutions[currentResolutionIndex]);

        currentDifficultyIndex = PlayerPrefs.GetInt(DIFFICULTY_PREF_KEY, 0);
        SetDifficultyText(currentDifficultyIndex);
        Debug.Log("current index: " + currentDifficultyIndex);
    }
        private BoolWithMessage ValidateAndUpdateVideoSettings()
        {
            if (!int.TryParse(FrameRateLimitText, out int frameRate))
            {
                return(BoolWithMessage.False("Frame Rate must be a valid number between 10 and 999"));
            }

            if (frameRate < 10 || frameRate > 999)
            {
                return(BoolWithMessage.False("Frame Rate must be a valid number between 10 and 999"));
            }

            if (ResolutionText == "Match Desktop Resolution")
            {
                GameSettingsManager.ResolutionSizeX = null;
                GameSettingsManager.ResolutionSizeY = null;
            }
            else if (ResolutionText == "Custom")
            {
                string[] res = CustomResolutionText.Split(new char[] { 'x' }, StringSplitOptions.RemoveEmptyEntries);

                if (res.Length != 2)
                {
                    return(BoolWithMessage.False("Custom resolution invalid. Must be in format '1920x1080'"));
                }

                if (!int.TryParse(res[0], out int customResX) || !int.TryParse(res[1], out int customResY))
                {
                    return(BoolWithMessage.False("Custom resolution invalid. Must be in format '1920x1080'"));
                }

                if (customResX <= 0 || customResY <= 0)
                {
                    return(BoolWithMessage.False("Custom resolution invalid. Must be in format '1920x1080'"));
                }

                GameSettingsManager.ResolutionSizeX = res[0];
                GameSettingsManager.ResolutionSizeY = res[1];
            }
            else
            {
                string[] res = ResolutionText.Split(new char[] { 'x' }, StringSplitOptions.RemoveEmptyEntries);
                GameSettingsManager.ResolutionSizeX = res[0];
                GameSettingsManager.ResolutionSizeY = res[1];
            }

            GameSettingsManager.EnableVsync    = IsVsyncEnabled;
            GameSettingsManager.FrameRateLimit = frameRate;

            Enum.TryParse(AntiAliasingText, out VideoSettingsOptions setting);
            GameSettingsManager.AntiAliasingQuality = (int)setting;

            Enum.TryParse(ShadowQualityText, out setting);
            GameSettingsManager.ShadowQuality = (int)setting;

            Enum.TryParse(ShadingQualityText, out setting);
            GameSettingsManager.ShadingQuality = (int)setting;

            Enum.TryParse(TexturesQualityText, out setting);
            GameSettingsManager.TextureQuality = (int)setting;

            Enum.TryParse(ViewDistanceQualityText, out setting);
            GameSettingsManager.ViewDistanceQuality = (int)setting;

            Enum.TryParse(FoliageQualityText, out setting);
            GameSettingsManager.FoliageQuality = (int)setting;

            Enum.TryParse(EffectsQualityText, out setting);
            GameSettingsManager.EffectsQuality = (int)setting;

            Enum.TryParse(PostProcessingText, out setting);
            GameSettingsManager.PostProcessQuality = (int)setting;

            GameSettingsManager.FullscreenMode = FullscreenDropdownOptions.IndexOf(FullScreenMode);

            return(GameSettingsManager.SaveVideoSettingsToDisk());
        }