예제 #1
0
        public void FlushVideoSettingData(Dictionary <int, float> sendValList)
        {
            foreach (var item in sendValList)
            {
                GameQualitySettingManager.ApplyVideoEffect((EVideoSettingId)item.Key, item.Value);
            }


            //SaveLocalVideoSetting(sendValList);
        }
예제 #2
0
        public Dictionary <int, float> LoadLocalVideoSetting()
        {
            foreach (var item in GameQualitySettingManager.VideoSettingDic)
            {
                float?val = GameQualitySettingManager.GetVideoSourceValue((EVideoSettingId)item.Key);
                if (val.HasValue)
                {
                    _localCache[item.Key] = val.Value;
                }
            }

            return(_localCache);
        }
예제 #3
0
        private void SetQualitySubOption(int settingId, string value)
        {
            var type = MapVideoIdToQualityType(settingId);

            if (type != 0)
            {
                if (SettingManager.videoEffectRange.Contains(settingId))
                {
                    var quality = SettingManager.GetInstance().GetSettingValue((int)VideoSettingId.Quality);
                    if (quality != "5")
                    {
                        value = quality;
                    }
                }

                GameQualitySettingManager.SetSettingByType(type, int.Parse(value));
                GameQualitySettingManager.ApplyTypeSetting(type);
            }
        }
예제 #4
0
        public void FlushData(bool isForce = false)
        {
            _localCache.Clear();
            List <int> changedSettingList = new List <int>();

            foreach (var item in _configDic)
            {
                if (isForce || item.Value.Invalid)
                {
                    if (!maxQualityMode || (maxQualityMode && item.Value.Type != 3))
                    {
                        changedSettingList.Add(item.Value.Id);
                    }
                }

                item.Value.Invalid = false;
                if (item.Value.Type == 3 || item.Value.Type == 4)
                {
                    if (item.Value.Value != null && item.Value.Value.Equals(item.Value.DefaultValue) == false)
                    {
                        _localCache[item.Value.Id] = item.Value.Value.ToString();
                    }
                }
            }

            try
            {
                GameQualitySettingManager.onChanges(changedSettingList);
                if (onchangedCallback != null)
                {
                    onchangedCallback(changedSettingList);
                }
            }
            catch (Exception)
            {
            }

            SaveSettingToLocal();
        }
예제 #5
0
        public static string ProcessGameSettingCommnands(DebugCommand message, SessionStateMachine stateMachine)
        {
            if (message.Command == DebugCommands.SetFrameRate)
            {
                string target    = message.Args[0].ToLower();
                var    frameRate = int.Parse(message.Args[1]);
                if (frameRate == -1)
                {
                    QualitySettings.vSyncCount = 1;
                    return("ok");
                }
                QualitySettings.vSyncCount = 0;
                GameSettingUtility.SetFrameRate(target, frameRate);
                return("ok");
            }
            else if (message.Command == DebugCommands.GetUnityQuality)
            {
                var qualityName = GameSettingUtility.GetQualityName();
                message.Args    = new string[1];
                message.Args[0] = qualityName;
                return(qualityName);
            }
            else if (message.Command == DebugCommands.GetQualityList)
            {
                message.Args = GameSettingUtility.GetQualityNameList();
                return("ok");
            }
            else if (message.Command == DebugCommands.GetQuality)
            {
                var qualityName = SettingManager.GetInstance().GetQuality();
                return(qualityName.ToString());
            }
            else if (message.Command == DebugCommands.SetQuality)
            {
                int levelIndex = int.Parse(message.Args[0]);
                GameSettingUtility.SetQuality(levelIndex);
                return("ok");
            }
            else if (message.Command == DebugCommands.Quality)
            {
                int levelIndex = int.Parse(message.Args[0]);
                SettingManager.GetInstance().SetQuality((QualityLevel)levelIndex);
                return("ok");
            }
            else if (message.Command == DebugCommands.VideoSetting)
            {
                int id = int.Parse(message.Args[0]);

                return(GameQualitySettingManager.GetVideoValue((EVideoSettingId)id));
            }

            else if (message.Command == DebugCommands.LodBias)
            {
                if (message.Args.Length > 0)
                {
                    float val;
                    if (float.TryParse(message.Args[0], out val))
                    {
                        QualitySettings.lodBias = val;
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                }
                else
                {
                    return(QualitySettings.lodBias.ToString());
                }

                return("ok");
            }
            else if (message.Command == DebugCommands.TreeDistance)
            {
                if (message.Args.Length > 1)
                {
                    float val;
                    if (float.TryParse(message.Args[0], out val))
                    {
                        SingletonManager.Get <DynamicScenesController>().SetTreeDistance(val);
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                    if (float.TryParse(message.Args[1], out val))
                    {
                        SingletonManager.Get <DynamicScenesController>().SetGrassDensity(val);
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                }
                else if (message.Args.Length > 0)
                {
                    float val;
                    if (float.TryParse(message.Args[0], out val))
                    {
                        SingletonManager.Get <DynamicScenesController>().SetTreeDistance(val);
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                }
                else
                {
                    return(string.Format("tree {0}, grass {1}", SingletonManager.Get <DynamicScenesController>().GetTreeDistance(),
                                         SingletonManager.Get <DynamicScenesController>().GetGrassDensity()));
                }

                return("ok");
            }
            else if (message.Command == DebugCommands.PermitSystem)
            {
                if (stateMachine.PermitSystem(message.Args[0]))
                {
                    return("ok");
                }
                return("wrong path");
            }
            else if (message.Command == DebugCommands.ForbidSystem)
            {
                if (stateMachine.ForbidSystems(message.Args[0]))
                {
                    return("ok");
                }
                return("wrong path");
            }
            else if (message.Command == DebugCommands.ShowSystem)
            {
                var treeNode = stateMachine.GetUpdateSystemTree();
                return(TransSystemTreeToString(treeNode));
            }
            return(String.Empty);
        }