890 lines
47 KiB
C#
890 lines
47 KiB
C#
using Thousandto.Cfg.Data;
|
||
using Thousandto.Code.Center;
|
||
using Thousandto.Core.Asset;
|
||
using Thousandto.Core.Base;
|
||
using Thousandto.Core.PostEffect;
|
||
using Thousandto.Core.Support;
|
||
using Thousandto.Plugins.Common.UniScene;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
namespace Thousandto.Code.Logic
|
||
{
|
||
/// <summary>
|
||
/// 性能,质量,效果方面的配置
|
||
/// </summary>
|
||
public class PerformanceSetting : SettingProcessBase
|
||
{
|
||
#region//私有变量
|
||
//设备匹配
|
||
private DeviceMatcher _matcher = new DeviceMatcher();
|
||
private bool _isInitialized = false;
|
||
private int _deviceLevel = 1;
|
||
private int _oriScreenWidth = 0;
|
||
private int _oriScreenHeight = 0;
|
||
private float[] _performanceLevel = null;
|
||
#endregion
|
||
|
||
#region //初始化,注册函数,继承父类
|
||
protected override void OnInitializeAfter()
|
||
{
|
||
if (!_isInitialized)
|
||
{
|
||
base.OnInitializeAfter();
|
||
|
||
if (Application.isMobilePlatform)
|
||
{
|
||
if(GameCenter.SDKSystem.IsEmulator())
|
||
{
|
||
//如果是模拟器
|
||
_deviceLevel = 2;
|
||
EnableShaderLightFlow(true);
|
||
Debug.Log("当前设备为模拟器!");
|
||
}
|
||
else
|
||
{
|
||
_matcher.Initialize(GetDeviceInfoList());
|
||
_matcher.PrintDeviceInfo();
|
||
|
||
//通过设备信息来加载默认的配置信息
|
||
int cfgID = -1;
|
||
_deviceLevel = _matcher.Process(out cfgID);
|
||
Debug.Log("当前设备支持的游戏品质为:" + _deviceLevel);
|
||
//_deviceLevel = 2;
|
||
if (cfgID >= 0)
|
||
{
|
||
var cfg = DeclareDeviceMatchConfig.Get(cfgID);
|
||
if (cfg != null) EnableShaderLightFlow(cfg.UseFlow > 0);
|
||
}
|
||
else
|
||
{
|
||
EnableShaderLightFlow(_deviceLevel > 0);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//如果非移动设备
|
||
_deviceLevel = 2;
|
||
EnableShaderLightFlow(true);
|
||
}
|
||
//创建一个共享内存,用于存储性能等级
|
||
_performanceLevel = GonbestGMemoryAccessor.AllocFloatBlock("qlevel", 1);
|
||
if(_performanceLevel != null) _performanceLevel[0] = _deviceLevel;
|
||
|
||
_isInitialized = true;
|
||
}
|
||
}
|
||
|
||
protected override void OnLoadDefault(bool isforce, bool save)
|
||
{
|
||
_oriScreenWidth = Screen.width;
|
||
_oriScreenHeight = Screen.height;
|
||
//根据设备重新设置游戏品质 -- 这里只处理那些还没有设置过的内容,对于已经设置过的不做处理
|
||
if (_deviceLevel <= 0)
|
||
{
|
||
SetLowQuality(isforce, save);
|
||
}
|
||
else if (_deviceLevel <= 1)
|
||
{
|
||
SetNormaQuality(isforce, save);
|
||
}
|
||
else
|
||
{
|
||
SetHighQuality(isforce, save);
|
||
}
|
||
|
||
//初始化QulitySetting
|
||
InitializeQualitySetting();
|
||
|
||
//设置默认的其他玩家等级
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.OtherPlayerSkillVfxLevel, 1, false);
|
||
}
|
||
//进入场景
|
||
protected override void OnEnterScene(GameScene scene)
|
||
{
|
||
|
||
//记载阴影灯光的问题
|
||
LoadLightCfg(scene);
|
||
OnEnableSceneLightingChanged(GameSettingCore.Get(GameSettingKeyCode.EnableSceneLighting));
|
||
OnEnableRainChanged(GameSettingCore.Get(GameSettingKeyCode.EnableRain));
|
||
OnEnableCameraVFXChanged(GameSettingCore.Get(GameSettingKeyCode.EnableCameraVFX));
|
||
OnSceneVFXLevelChanged(GameSettingCore.Get(GameSettingKeyCode.SceneVFXLevel));
|
||
OnEnableWaterChanged(GameSettingCore.Get(GameSettingKeyCode.EnableWater));
|
||
OnEnableHighFogChanged(GameSettingCore.Get(GameSettingKeyCode.EnableHighFog));
|
||
OnFarAndNearFogChanged(GameSettingCore.Get(GameSettingKeyCode.FarAndNearFog));
|
||
OnSceneObjClipDisChanged(GameSettingCore.Get(GameSettingKeyCode.SceneObjClipDis));
|
||
OnSceneShelterHideChanged(GameSettingCore.Get(GameSettingKeyCode.SceneShelterHide));
|
||
OnEnablePostEffectChanged(GameSettingCore.Get(GameSettingKeyCode.EnablePostEffect));
|
||
OnCastShadowLevelChanged(GameSettingCore.Get(GameSettingKeyCode.CastShadowLevel));
|
||
OnEnableReceiveShadowChanged(GameSettingCore.Get(GameSettingKeyCode.EnableReceiveShadow));
|
||
OnEnableGrassChanged(GameSettingCore.Get(GameSettingKeyCode.EnableGrass));
|
||
OnEnableFreeCameraViewChanged(GameSettingCore.Get(GameSettingKeyCode.EnableFreeCameraView));
|
||
OnEnableFarViewChanged(GameSettingCore.Get(GameSettingKeyCode.EnableFarView));
|
||
//是否开启场景物件远近分层显示
|
||
SetShaderLevel(GameSettingCore.Get(GameSettingKeyCode.QualityLevel));
|
||
OnEnableSoftBoneChanged(GameSettingCore.Get(GameSettingKeyCode.EnableSoftBone));
|
||
}
|
||
|
||
protected override void OnRegisterSettingChangedHandler()
|
||
{
|
||
base.OnRegisterSettingChangedHandler();
|
||
AddSettingChangedHandler(GameSettingKeyCode.QualityLevel, OnQualityLevelChanged);
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableSceneLighting, OnEnableSceneLightingChanged);//场景光照
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableRain, OnEnableRainChanged);//是否显示下雨效果(水面波纹)
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableCameraVFX, OnEnableCameraVFXChanged);//是否显示摄像机的特效
|
||
AddSettingChangedHandler(GameSettingKeyCode.SceneVFXLevel, OnSceneVFXLevelChanged);//场景特效的等级
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableWater, OnEnableWaterChanged);//是否显示水(水面反射,镜像)
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableHighFog, OnEnableHighFogChanged);//是否显示高度雾
|
||
AddSettingChangedHandler(GameSettingKeyCode.FarAndNearFog, OnFarAndNearFogChanged);//远近雾缩放因子,设置的雾效距离乘以这个值
|
||
AddSettingChangedHandler(GameSettingKeyCode.SceneObjClipDis, OnSceneObjClipDisChanged);//场景物件裁剪距离
|
||
AddSettingChangedHandler(GameSettingKeyCode.SceneShelterHide, OnSceneShelterHideChanged);//场景遮挡主角渐隐效果
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnablePostEffect, OnEnablePostEffectChanged);//后处理效果
|
||
AddSettingChangedHandler(GameSettingKeyCode.CastShadowLevel, OnCastShadowLevelChanged);//生成阴影的等级,0不生成阴影,1主角生成阴影,2所有角色生成阴影
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableReceiveShadow, OnEnableReceiveShadowChanged);//是否接收阴影(场景)
|
||
AddSettingChangedHandler(GameSettingKeyCode.MaxShowPlayerCount, OnMaxShowPlayerCountChanged);//显示玩家数量
|
||
AddSettingChangedHandler(GameSettingKeyCode.CurvedScreenScreenScale, OnMaxCurvedScreenScaleChanged);//设置屏幕缩放
|
||
AddSettingChangedHandler(GameSettingKeyCode.PlayerLighting, OnPlayerLightingChanged);//玩家光照 0关闭,1只要主角开启,2所有玩家开启
|
||
AddSettingChangedHandler(GameSettingKeyCode.NPCLighting, OnNPCLightingChanged);//NPC光照 0关闭,1开启
|
||
AddSettingChangedHandler(GameSettingKeyCode.MonsterLighting, OnMonsterLightingChanged);//怪物光照 0关闭,1开启
|
||
AddSettingChangedHandler(GameSettingKeyCode.LocalBonesCount, OnLocalBonesCountChanged);//主角骨骼数量2, 4, 4
|
||
AddSettingChangedHandler(GameSettingKeyCode.OtherBonesCount, OnOtherBonesCountChanged);//其他角色骨骼数量1, 2, 4
|
||
AddSettingChangedHandler(GameSettingKeyCode.VfxLevel, OnVfxLevelChanged);//特效等级
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableShakeEffect, OnEnableShakeEffectChanged);//震动特效(技能震动)
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableRadialBlurEffect, OnEnableRadialBlurEffectChanged);//是否显示使用径向模糊效果 (技能模糊)
|
||
AddSettingChangedHandler(GameSettingKeyCode.SkillVfxLevel, OnSkillVfxLevelChanged);//技能特效等级,0只显示主角技能特效,1显示主角和主角宠物法宝的技能特效,2显示所有技能特效
|
||
AddSettingChangedHandler(GameSettingKeyCode.DamageNumber, OnDamageNumberChanged);//伤害数字数量
|
||
AddSettingChangedHandler(GameSettingKeyCode.HitBlink, OnHitBlinkChanged);//受击闪烁 0关闭,1仅主角产生的伤害有,2所有
|
||
AddSettingChangedHandler(GameSettingKeyCode.SkillSFX, OnSkillSFXChanged);//技能音效 0只有主角有,1所有角色都有
|
||
AddSettingChangedHandler(GameSettingKeyCode.HitVfx, OnHitVfxChanged);//受击特效 0只有主角产生的伤害有,1所有角色都有
|
||
AddSettingChangedHandler(GameSettingKeyCode.ScreenResolutionLevel, OnScreenResolutionLevelChanged);//当前屏幕的分辨率等级,主要针对弱显卡,高分辨率的机器
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableGrass, OnEnableGrassChanged);//是否使用动态,可碰撞的草
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableAirWaveEffect, OnEnableAirWaveEffectChanged);//是否使用空气波效果
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableMonsterGrownEffect, OnEnableMonsterGrownEffectChanged);//怪物出生特效
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableMonsterDeadEffect, OnEnableMonsterDeadEffectChanged);//怪物死亡效果
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableFreeCameraView, OnEnableFreeCameraViewChanged);//是否启动自由摄像机视角
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableModelVFX, OnEnableModelVFXChanged);//是否显示挂载在模型上的特效
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableDynamicBone, OnEnableDynamicBoneChanged);//是否开启动态骨骼系统(柔体)
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnablePowerSave, OnEnablePowerSaveChanged);//是否开启省电模式
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableFarView, OnEnableFarViewChanged);//是否是远视野
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableShowWing, OnEnableShowWingChanged);//场景中是否显示翅膀
|
||
AddSettingChangedHandler(GameSettingKeyCode.OtherPlayerSkillVfxLevel, OnOtherPlayerSkillVfxLevelChanged);//场景中是否显示翅膀
|
||
AddSettingChangedHandler(GameSettingKeyCode.PanelUpdateRate, OnPanelUpdateRateRateChanged);//Panel update的频率
|
||
AddSettingChangedHandler(GameSettingKeyCode.ShowOtherFaBao, OnMaxShowPlayerCountChanged);//显示其他法宝
|
||
AddSettingChangedHandler(GameSettingKeyCode.ShowOtherPet, OnMaxShowPlayerCountChanged);//显示其他宠物
|
||
AddSettingChangedHandler(GameSettingKeyCode.ShowOtherMarryChild, OnMaxShowPlayerCountChanged);//显示其他仙娃
|
||
AddSettingChangedHandler(GameSettingKeyCode.ShowOtherFlySword, OnMaxShowPlayerCountChanged);//显示其他飞剑
|
||
AddSettingChangedHandler(GameSettingKeyCode.EnableSoftBone, OnEnableSoftBoneChanged);//柔体开关
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region//配置改变后的处理函数 --- 针对性能的每一个配置枚举,这里都应该有一个对应的函数
|
||
|
||
//品质等级改变
|
||
public void OnQualityLevelChanged(int value)
|
||
{
|
||
if (value <= 0)
|
||
{
|
||
SetLowQuality(true, true);
|
||
}
|
||
else if (value <= 1)
|
||
{
|
||
SetNormaQuality(true, true);
|
||
}
|
||
else
|
||
{
|
||
SetHighQuality(true, true);
|
||
}
|
||
|
||
//初始化QulitySetting
|
||
InitializeQualitySetting();
|
||
|
||
}
|
||
|
||
//品质等级改变
|
||
public void SetQualityLevelUnSave(int value)
|
||
{
|
||
if (value <= 0)
|
||
{
|
||
SetLowQuality(true, false);
|
||
}
|
||
else if (value <= 1)
|
||
{
|
||
SetNormaQuality(true, false);
|
||
}
|
||
else
|
||
{
|
||
SetHighQuality(true, false);
|
||
}
|
||
|
||
//初始化QulitySetting
|
||
InitializeQualitySetting();
|
||
|
||
}
|
||
//场景光照改变
|
||
public void OnEnableSceneLightingChanged(int value)
|
||
{
|
||
|
||
}
|
||
//下雨改变
|
||
public void OnEnableRainChanged(int value)
|
||
{
|
||
EnableShaderRain(value > 0);
|
||
}
|
||
//是否开启摄像机特效
|
||
public void OnEnableCameraVFXChanged(int value)
|
||
{
|
||
var scene = GameCenter.GameSceneSystem.ActivedScene;
|
||
if (scene != null)
|
||
{
|
||
scene.LoadCameraVfx();
|
||
}
|
||
}
|
||
//场景特效的等级
|
||
public void OnSceneVFXLevelChanged(int value)
|
||
{
|
||
var scene = GameCenter.GameSceneSystem.ActivedScene;
|
||
if (scene != null)
|
||
{
|
||
scene.SetSceneEffectLevel();
|
||
}
|
||
}
|
||
//是否开启水的效果
|
||
public void OnEnableWaterChanged(int value)
|
||
{
|
||
//ShaderManager.SharedInstance.EnableWater(value > 0);
|
||
}
|
||
//是否显示高度雾
|
||
public void OnEnableHighFogChanged(int value)
|
||
{
|
||
EnableHighFog(value > 0);
|
||
}
|
||
//远近雾缩放因子,设置的雾效距离乘以这个值
|
||
public void OnFarAndNearFogChanged(int value)
|
||
{
|
||
}
|
||
//场景物件裁剪距离
|
||
public void OnSceneObjClipDisChanged(int value)
|
||
{
|
||
GameCenter.SceneRestoreSystem.SetEnable(value);
|
||
}
|
||
//场景遮挡主角渐隐效果
|
||
public void OnSceneShelterHideChanged(int value)
|
||
{
|
||
var scene = GameCenter.GameSceneSystem.ActivedScene;
|
||
if(scene != null && scene.SceneCameraControl != null)
|
||
{
|
||
scene.SceneCameraControl.SetRayCheckModel(value > 0);
|
||
}
|
||
}
|
||
//是否开启曝光效果
|
||
public void OnEnablePostEffectChanged(int value)
|
||
{
|
||
var scene = GameCenter.GameSceneSystem.ActivedScene;
|
||
if (scene != null && scene.CameraManager != null)
|
||
{
|
||
var eveneId = value != 0 ? Global.LogicEventDefine.EID_EVENT_ENABLE_CAMERA_POSTEFFECT : Global.LogicEventDefine.EID_EVENT_DISABLE_CAMERA_POSTEFFECT;
|
||
var cameraList = scene.CameraManager.SceneCamList;
|
||
for (int i = 0; i < cameraList.Count; ++i)
|
||
{
|
||
GameCenter.PushFixEvent(eveneId, cameraList[i].gameObject);
|
||
}
|
||
}
|
||
for (int i = 0; i < Camera.allCamerasCount; i++)
|
||
{
|
||
var c = Camera.allCameras[i];
|
||
if (c != null && c.gameObject != null && c.enabled )
|
||
{
|
||
c.gameObject.SendMessage("OnPostEffectActive", value, SendMessageOptions.DontRequireReceiver);
|
||
}
|
||
}
|
||
}
|
||
//生成阴影的等级,0不生成阴影,1主角生成阴影,2所有角色生成阴影
|
||
public void OnCastShadowLevelChanged(int value)
|
||
{
|
||
RefreshShadow();
|
||
}
|
||
//是否接收阴影(场景)
|
||
public void OnEnableReceiveShadowChanged(int value)
|
||
{
|
||
RefreshShadow();
|
||
}
|
||
|
||
//当前场景中最多有玩家角色模型被显示
|
||
public void OnMaxShowPlayerCountChanged(int value)
|
||
{
|
||
GameObjectLimit.RefreshShowPlayer();
|
||
}
|
||
//屏幕缩放改变
|
||
public void OnMaxCurvedScreenScaleChanged(int value)
|
||
{
|
||
GameCenter.PushFixEvent(Global.LogicEventDefine.EID_CURVEDSCREENSCALE_CHANGE, (float)value);
|
||
}
|
||
//玩家光照 0关闭,1只要主角开启,2所有玩家开启
|
||
public void OnPlayerLightingChanged(int value)
|
||
{
|
||
|
||
}
|
||
//NPC光照 0关闭,1开启
|
||
public void OnNPCLightingChanged(int value)
|
||
{
|
||
|
||
}
|
||
//怪物光照 0关闭,1开启
|
||
public void OnMonsterLightingChanged(int value)
|
||
{
|
||
|
||
}
|
||
//主角骨骼数量2, 4, 4
|
||
public void OnLocalBonesCountChanged(int value)
|
||
{
|
||
var lp = GameCenter.GameSceneSystem.GetLocalPlayer();
|
||
if(lp != null)
|
||
{
|
||
lp.RefreshSkinQuality();
|
||
}
|
||
}
|
||
//其他角色骨骼数量1, 2, 4
|
||
public void OnOtherBonesCountChanged(int value)
|
||
{
|
||
var charList = GameCenter.GameSceneSystem.FindEntityAll<Character>();
|
||
if(charList != null && charList.Count > 0)
|
||
{
|
||
for(int i = 0; i < charList.Count; ++i)
|
||
{
|
||
charList[i].RefreshSkinQuality();
|
||
}
|
||
}
|
||
}
|
||
//特效等级
|
||
public void OnVfxLevelChanged(int value)
|
||
{
|
||
if (value <= 1)
|
||
{
|
||
FGameObjectVFXRoot.Vfxlevel = 1;
|
||
}
|
||
else
|
||
{
|
||
FGameObjectVFXRoot.Vfxlevel = value;
|
||
}
|
||
}
|
||
//震动特效(技能震动)
|
||
public void OnEnableShakeEffectChanged(int value)
|
||
{
|
||
VFXCameraShaker.Enabled = (value > 0);
|
||
//if (GameCenter.PowerSaveModelSysytem.IsEnterSaveModel())
|
||
// VFXCameraShaker.Enabled = false;
|
||
}
|
||
//是否显示使用径向模糊效果 (技能模糊)
|
||
public void OnEnableRadialBlurEffectChanged(int value)
|
||
{
|
||
//Tips:这里不进行处理,是因为这个效果,是一个限制效果,不需要立刻生效,只需要在技能释放时进行限制处理.
|
||
}
|
||
//技能特效等级,0只显示主角技能特效,1显示主角和主角宠物法宝的技能特效,2显示所有技能特效
|
||
public void OnSkillVfxLevelChanged(int value)
|
||
{
|
||
//Tips:这里不进行处理,是因为这个效果,是一个限制效果,不需要立刻生效,只需要在技能释放时进行限制处理.
|
||
}
|
||
//伤害数字数量
|
||
public void OnDamageNumberChanged(int value)
|
||
{
|
||
|
||
}
|
||
//受击闪烁 0关闭,1仅主角产生的伤害有,2所有
|
||
public void OnHitBlinkChanged(int value)
|
||
{
|
||
|
||
}
|
||
//技能音效 0只有主角有,1所有角色都有
|
||
public void OnSkillSFXChanged(int value)
|
||
{
|
||
|
||
}
|
||
//受击特效 0只有主角产生的伤害有,1所有角色都有
|
||
public void OnHitVfxChanged(int value)
|
||
{
|
||
|
||
}
|
||
//当前屏幕的分辨率等级,主要针对弱显卡,高分辨率的机器
|
||
public void OnScreenResolutionLevelChanged(int value)
|
||
{
|
||
if (value <= 1)
|
||
{
|
||
ScreenSystem.SetDesignContentScale();
|
||
}
|
||
else
|
||
{
|
||
ScreenSystem.SetMaxDesignContent();
|
||
}
|
||
}
|
||
//是否使用动态,可碰撞的草
|
||
public void OnEnableGrassChanged(int value)
|
||
{
|
||
GameScene.SetGrassEnable();
|
||
}
|
||
//是否使用空气波效果
|
||
public void OnEnableAirWaveEffectChanged(int value)
|
||
{
|
||
//PostEffectManager.Instance.IsEnableAirWave = value > 0;
|
||
}
|
||
//怪物出生特效
|
||
public void OnEnableMonsterGrownEffectChanged(int value)
|
||
{
|
||
//Tips:这里不进行处理,是因为这个效果,是一个限制效果,不需要立刻生效,只需要在怪物出生时进行限制处理.
|
||
}
|
||
//怪物死亡效果
|
||
public void OnEnableMonsterDeadEffectChanged(int value)
|
||
{
|
||
//Tips:这里不进行处理,是因为这个效果,是一个限制效果,不需要立刻生效,只需要在怪物死亡时进行限制处理.
|
||
}
|
||
//是否启动自由摄像机视角
|
||
public void OnEnableFreeCameraViewChanged(int value)
|
||
{
|
||
GameCenter.CameraControlUtil.ChangeCamearLockState(value <= 0);
|
||
}
|
||
//是否显示挂载在模型上的特效
|
||
public void OnEnableModelVFXChanged(int value)
|
||
{
|
||
var playerList = GameCenter.GameSceneSystem.FindEntityAll<Character>();
|
||
if (playerList != null)
|
||
{
|
||
for (int i = 0; i < playerList.Count; ++i)
|
||
{
|
||
if (playerList[i].ID != LocalPlayerRoot.LocalPlayerID)
|
||
{
|
||
if (value > 0)
|
||
{
|
||
playerList[i].Skin.ShowAllPartVfx();
|
||
}
|
||
else
|
||
{
|
||
playerList[i].Skin.HideAllPartVfx();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//是否开启动态骨骼系统(柔体)
|
||
public void OnEnableDynamicBoneChanged(int value)
|
||
{
|
||
FBoneClothComp.IsEnable = value > 0;
|
||
FSpringClothComp.IsEnable = value > 0;
|
||
}
|
||
//是否开启省电模式
|
||
public void OnEnablePowerSaveChanged(int value)
|
||
{
|
||
//PowerSaveModelSysytem.enablePowerSaveModel = value == 1 ? true : false;
|
||
}
|
||
//是否是远视野
|
||
public void OnEnableFarViewChanged(int value)
|
||
{
|
||
if (GameCenter.GameSceneSystem.ActivedScene != null && GameCenter.GameSceneSystem.ActivedScene.SceneCameraControl != null)
|
||
{
|
||
if (value > 0)
|
||
{
|
||
GameCenter.GameSceneSystem.ActivedScene.SceneCameraControl.SetFarViewState(true);
|
||
}
|
||
else
|
||
{
|
||
GameCenter.GameSceneSystem.ActivedScene.SceneCameraControl.SetFarViewState(false);
|
||
}
|
||
}
|
||
}
|
||
//场景中是否显示翅膀
|
||
public void OnEnableShowWingChanged(int value)
|
||
{
|
||
var playerList = GameCenter.GameSceneSystem.FindEntityAll<Player>();
|
||
if (playerList != null)
|
||
{
|
||
for (int i = 0; i < playerList.Count; ++i)
|
||
{
|
||
if (value > 0)
|
||
{
|
||
playerList[i].Skin.ShowSkinPart(FSkinPartCode.Wing);
|
||
}
|
||
else
|
||
{
|
||
playerList[i].Skin.HideSkinPart(FSkinPartCode.Wing);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//其他玩家的技能等级
|
||
public void OnOtherPlayerSkillVfxLevelChanged(int value)
|
||
{
|
||
//Tips:这里不做处理,只在释放技能那一刻进行判断
|
||
}
|
||
|
||
//Panel填充DrawCall的频率
|
||
public void OnPanelUpdateRateRateChanged(int value)
|
||
{
|
||
GameCenter.PushFixEvent(Global.LogicEventDefine.EID_PANEL_FILLDRAWCALLRATE_CHANGED);
|
||
}
|
||
//是否是远视野
|
||
public void OnEnableSoftBoneChanged(int value)
|
||
{
|
||
GameCenter.PushFixEvent(Global.LogicEventDefine.EID_EVENT_SOFTBONE_ENABLE_CHANGED, value);
|
||
}
|
||
#endregion
|
||
|
||
#region//私有函数
|
||
|
||
private void InitializeQualitySetting()
|
||
{
|
||
var qlevel = GameSettingCore.Get(GameSettingKeyCode.QualityLevel);
|
||
if (qlevel <= 0)
|
||
{
|
||
QualitySettings.skinWeights = SkinWeights.OneBone;
|
||
QualitySettings.anisotropicFiltering = AnisotropicFiltering.Disable;
|
||
QualitySettings.antiAliasing = 0;
|
||
QualitySettings.globalTextureMipmapLimit = 1;
|
||
#if !UNITY_STANDALONE_WIN
|
||
//设置为640P
|
||
var scale = _oriScreenHeight > 640 ? 640f / _oriScreenHeight : 1f;
|
||
Screen.SetResolution((int)(_oriScreenWidth * scale), (int)(_oriScreenHeight * scale), true);
|
||
#endif
|
||
}
|
||
else if (qlevel <= 1)
|
||
{
|
||
QualitySettings.skinWeights = SkinWeights.TwoBones;
|
||
QualitySettings.anisotropicFiltering = AnisotropicFiltering.Enable;
|
||
QualitySettings.antiAliasing = 2;
|
||
QualitySettings.globalTextureMipmapLimit = 0;
|
||
#if !UNITY_STANDALONE_WIN
|
||
//设置为720P
|
||
var scale = _oriScreenHeight > 720 ? 720f / _oriScreenHeight : 1f;
|
||
Screen.SetResolution((int)(_oriScreenWidth * scale), (int)(_oriScreenHeight * scale), true);
|
||
#endif
|
||
}
|
||
else
|
||
{
|
||
QualitySettings.skinWeights = SkinWeights.TwoBones;
|
||
QualitySettings.anisotropicFiltering = AnisotropicFiltering.ForceEnable;
|
||
QualitySettings.antiAliasing = 4;
|
||
QualitySettings.globalTextureMipmapLimit = 0;
|
||
#if !UNITY_STANDALONE_WIN
|
||
//设置为原大小
|
||
Screen.SetResolution(_oriScreenWidth, _oriScreenHeight, true);
|
||
#endif
|
||
}
|
||
SetShaderLevel(qlevel);
|
||
|
||
if (_performanceLevel != null)
|
||
{
|
||
_performanceLevel[0] = qlevel;
|
||
}
|
||
|
||
}
|
||
|
||
private void SetShaderLevel(int qlevel)
|
||
{
|
||
if (qlevel <= 0)
|
||
{
|
||
Shader.globalMaximumLOD = 210;
|
||
}
|
||
else if (qlevel <= 1)
|
||
{
|
||
Shader.globalMaximumLOD = 260;
|
||
}
|
||
else
|
||
{
|
||
Shader.globalMaximumLOD = 310;
|
||
}
|
||
}
|
||
|
||
//设置为低配
|
||
private void SetLowQuality(bool isForce, bool save)
|
||
{
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.QualityLevel, 0, isForce, false); //画面质量(总开关)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.VfxLevel, 1, isForce);//特效等级
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableSceneLighting, 0, isForce);//场景光照
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableRain, 0, isForce);//是否显示下雨效果(水面波纹)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableCameraVFX, 0, isForce);//是否显示摄像机的特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneVFXLevel, 1, isForce);//场景特效的等级
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableWater, 0, isForce);//是否显示水(水面反射,镜像)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableHighFog, 0, isForce);//是否显示高度雾
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.FarAndNearFog, 30, isForce);//远近雾缩放因子,设置的雾效距离乘以这个值
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneObjClipDis, 0, isForce);//场景物件裁剪距离
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneShelterHide, 0, isForce);//场景遮挡主角渐隐效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnablePostEffect, 0, isForce);//后处理效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.CastShadowLevel, 0, isForce);//生成阴影的等级,0不生成阴影,1主角生成阴影,2所有角色生成阴影
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableReceiveShadow, 0, isForce);//是否接收阴影(场景)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.MaxShowPlayerCount, 4, isForce);//显示玩家数量
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.CurvedScreenScreenScale, 100, isForce);//屏幕缩放
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.PlayerLighting, 0, isForce);//玩家光照 0关闭,1只要主角开启,2所有玩家开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.NPCLighting, 0, isForce);//NPC光照 0关闭,1开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.MonsterLighting, 0, isForce);//怪物光照 0关闭,1开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.LocalBonesCount, 2, isForce);//主角骨骼数量2, 4, 4
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.OtherBonesCount, 1, isForce);//其他角色骨骼数量1, 2, 4
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableShakeEffect, 0, isForce);//震动特效(技能震动)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableRadialBlurEffect, 0, isForce);//是否显示使用径向模糊效果 (技能模糊)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SkillVfxLevel, 0, isForce);//技能特效等级,0只显示主角技能特效,1显示主角和主角宠物法宝的技能特效,2显示所有技能特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.DamageNumber, 10, isForce);//伤害数字数量
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.HitBlink, 0, isForce);//受击闪烁 0关闭,1仅主角产生的伤害有,2所有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SkillSFX, 0, isForce);//技能音效 0只有主角有,1所有角色都有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.HitVfx, 0, isForce);//受击特效 0只有主角产生的伤害有,1所有角色都有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ScreenResolutionLevel, 0, isForce);//当前屏幕的分辨率等级,主要针对弱显卡,高分辨率的机器
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableGrass, 0, isForce);//是否使用动态,可碰撞的草
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableAirWaveEffect, 0, isForce);//是否使用空气波效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableMonsterGrownEffect, 0, isForce);//怪物出生特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableMonsterDeadEffect, 0, isForce);//怪物死亡效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableFreeCameraView, 0, isForce);//是否启动自由摄像机视角
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableModelVFX, 0, isForce);//是否显示挂载在模型上的特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableDynamicBone, 0, isForce);//是否开启动态骨骼系统(柔体)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableShowWing, 1, isForce);//场景中是否显示翅膀
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.PanelUpdateRate, 0, isForce);//Panel update的频率
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableUIAnimation, 0, isForce);//是否开启UI动画
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnablePowerSave, 1, isForce);//是否开启UI动画
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherFaBao, 0, isForce);//显示其他法宝
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherPet, 0, isForce);//显示其他宠物
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherMarryChild, 0, isForce);//显示其他仙娃
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherFlySword, 1, isForce);//显示其他飞剑
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableSoftBone, 1, isForce);//开启柔体
|
||
|
||
if (save)
|
||
{
|
||
GameSettingCore.Save();
|
||
}
|
||
}
|
||
|
||
//设置为正常配置
|
||
private void SetNormaQuality(bool isForce, bool save)
|
||
{
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.QualityLevel, 1, isForce, false); //画面质量(总开关)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.VfxLevel, 2, isForce);//特效等级
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableSceneLighting, 1, isForce);//场景光照
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableRain, 0, isForce);//是否显示下雨效果(水面波纹)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableCameraVFX, 1, isForce);//是否显示摄像机的特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneVFXLevel, 2, isForce);//场景特效的等级
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableWater, 0, isForce);//是否显示水(水面反射,镜像)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableHighFog, 0, isForce);//是否显示高度雾
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.FarAndNearFog, 50, isForce);//远近雾缩放因子,设置的雾效距离乘以这个值
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneObjClipDis, 1, isForce);//场景物件裁剪距离
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneShelterHide, 1, isForce);//场景遮挡主角渐隐效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnablePostEffect, 0, isForce);//后处理效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.CastShadowLevel, 1, isForce);//生成阴影的等级,0不生成阴影,1主角生成阴影,2所有角色生成阴影
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableReceiveShadow, 1, isForce);//是否接收阴影(场景)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.MaxShowPlayerCount, 8, isForce);//显示玩家数量
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.CurvedScreenScreenScale, 100, isForce);//屏幕缩放
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.PlayerLighting, 1, isForce);//玩家光照 0关闭,1只要主角开启,2所有玩家开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.NPCLighting, 1, isForce);//NPC光照 0关闭,1开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.MonsterLighting, 0, isForce);//怪物光照 0关闭,1开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.LocalBonesCount, 4, isForce);//主角骨骼数量2, 4, 4
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.OtherBonesCount, 2, isForce);//其他角色骨骼数量1, 2, 4
|
||
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableShakeEffect, 1, isForce);//震动特效(技能震动)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableRadialBlurEffect, 1, isForce);//是否显示使用径向模糊效果 (技能模糊)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SkillVfxLevel, 1, isForce);//技能特效等级,0只显示主角技能特效,1显示主角和主角宠物法宝的技能特效,2显示所有技能特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.DamageNumber, 20, isForce);//伤害数字数量
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.HitBlink, 1, isForce);//受击闪烁 0关闭,1仅主角产生的伤害有,2所有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SkillSFX, 1, isForce);//技能音效 0只有主角有,1所有角色都有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.HitVfx, 0, isForce);//受击特效 0只有主角产生的伤害有,1所有角色都有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ScreenResolutionLevel, 1, isForce);//当前屏幕的分辨率等级,主要针对弱显卡,高分辨率的机器
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableGrass, 1, isForce);//是否使用动态,可碰撞的草
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableAirWaveEffect, 0, isForce);//是否使用空气波效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableMonsterGrownEffect, 1, isForce);//怪物出生特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableMonsterDeadEffect, 1, isForce);//怪物死亡效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableFreeCameraView, 0, isForce);//是否启动自由摄像机视角
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableModelVFX, 1, isForce);//是否显示挂载在模型上的特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableDynamicBone, 0, isForce);//是否开启动态骨骼系统(柔体)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableShowWing, 1, isForce);//场景中是否显示翅膀
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.PanelUpdateRate, 0, isForce);//Panel update的频率
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableUIAnimation, 1, isForce);//是否开启UI动画
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnablePowerSave, 1, isForce);//是否开启UI动画
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherFaBao, 0, isForce);//显示其他法宝
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherPet, 1, isForce);//显示其他宠物
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherMarryChild, 0, isForce);//显示其他仙娃
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherFlySword, 1, isForce);//显示其他飞剑
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableSoftBone, 2, isForce);//开启柔体
|
||
|
||
if (save)
|
||
{
|
||
GameSettingCore.Save();
|
||
}
|
||
}
|
||
|
||
//设置高配
|
||
private void SetHighQuality(bool isForce, bool save)
|
||
{
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.QualityLevel, 2, isForce, false); //画面质量(总开关)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.VfxLevel, 3, isForce);//特效等级
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableSceneLighting, 1, isForce);//场景光照
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableRain, 1, isForce);//是否显示下雨效果(水面波纹)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableCameraVFX, 1, isForce);//是否显示摄像机的特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneVFXLevel, 3, isForce);//场景特效的等级
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableWater, 1, isForce);//是否显示水(水面反射,镜像)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableHighFog, 1, isForce);//是否显示高度雾
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.FarAndNearFog, 100, isForce);//远近雾缩放因子,设置的雾效距离乘以这个值
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneObjClipDis, 2, isForce);//场景物件裁剪距离
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SceneShelterHide, 1, isForce);//场景遮挡主角渐隐效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnablePostEffect, 1, isForce);//后处理效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.CastShadowLevel, 2, isForce);//生成阴影的等级,0不生成阴影,1主角生成阴影,2所有角色生成阴影
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableReceiveShadow, 1, isForce);//是否接收阴影(场景)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.MaxShowPlayerCount, 12, isForce);//显示玩家数量
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.CurvedScreenScreenScale, 100, isForce);//屏幕缩放
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.PlayerLighting, 2, isForce);//玩家光照 0关闭,1只要主角开启,2所有玩家开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.NPCLighting, 1, isForce);//NPC光照 0关闭,1开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.MonsterLighting, 1, isForce);//怪物光照 0关闭,1开启
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.LocalBonesCount, 4, isForce);//主角骨骼数量2, 4, 4
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.OtherBonesCount, 4, isForce);//其他角色骨骼数量1, 2, 4
|
||
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableShakeEffect, 1, isForce);//震动特效(技能震动)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableRadialBlurEffect, 1, isForce);//是否显示使用径向模糊效果 (技能模糊)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SkillVfxLevel, 2, isForce);//技能特效等级,0只显示主角技能特效,1显示主角和主角宠物法宝的技能特效,2显示所有技能特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.DamageNumber, 30, isForce);//伤害数字数量
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.HitBlink, 2, isForce);//受击闪烁 0关闭,1仅主角产生的伤害有,2所有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.SkillSFX, 1, isForce);//技能音效 0只有主角有,1所有角色都有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.HitVfx, 1, isForce);//受击特效 0只有主角产生的伤害有,1所有角色都有
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ScreenResolutionLevel, 2, isForce);//当前屏幕的分辨率等级,主要针对弱显卡,高分辨率的机器
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableGrass, 1, isForce);//是否使用动态,可碰撞的草
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableAirWaveEffect, 1, isForce);//是否使用空气波效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableMonsterGrownEffect, 1, isForce);//怪物出生特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableMonsterDeadEffect, 1, isForce);//怪物死亡效果
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableFreeCameraView, 0, isForce);//是否启动自由摄像机视角
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableModelVFX, 1, isForce);//是否显示挂载在模型上的特效
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableDynamicBone, 1, isForce);//是否开启动态骨骼系统(柔体)
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableShowWing, 1, isForce);//场景中是否显示翅膀
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.PanelUpdateRate, 0, isForce);//Panel update的频率
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableUIAnimation, 1, isForce);//是否开启UI动画
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnablePowerSave, 1, isForce);//是否开启UI动画
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherFaBao, 1, isForce);//显示其他法宝
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherPet, 1, isForce);//显示其他宠物
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherMarryChild, 1, isForce);//显示其他仙娃
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.ShowOtherFlySword, 1, isForce);//显示其他飞剑
|
||
GameSettingCore.SetUnSave(GameSettingKeyCode.EnableSoftBone, 3, isForce);//开启柔体
|
||
|
||
if (save)
|
||
{
|
||
GameSettingCore.Save();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取设备的信息
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private List<DeviceMatchInfo> GetDeviceInfoList()
|
||
{
|
||
char[] splitChars = new char[] { ' ' };
|
||
List<DeviceMatchInfo> list = new List<DeviceMatchInfo>(DeclareDeviceMatchConfig.CacheDataCount);
|
||
var em = DeclareDeviceMatchConfig.CacheData.GetEnumerator();
|
||
while (em.MoveNext())
|
||
{
|
||
var cfg = em.Current.Value;
|
||
if (cfg != null && !string.IsNullOrEmpty(cfg.DeviceName))
|
||
{
|
||
var arr = cfg.DeviceName.Split(splitChars, StringSplitOptions.RemoveEmptyEntries);
|
||
if (arr != null && arr.Length > 0)
|
||
{
|
||
list.Add(
|
||
new DeviceMatchInfo()
|
||
{
|
||
DeviceNameKeyWords = arr,
|
||
DeviceType = cfg.DeviceType,
|
||
Id = cfg.Id,
|
||
Level = cfg.Level,
|
||
MatchCPU = cfg.MatchCPU > 0,
|
||
}
|
||
);
|
||
}
|
||
}
|
||
}
|
||
return list;
|
||
}
|
||
#endregion
|
||
|
||
#region //一些效果的设置以及加载
|
||
private void LoadLightCfg(GameScene scene)
|
||
{
|
||
PostEffectManager.Instance.SetPlayerShadowLight(scene.ShadowLightDir, scene.ShadowNightStrength);
|
||
PostEffectManager.Instance.EnableSceneShadow(scene.SceneShadowOpen);
|
||
PostEffectManager.Instance.SetSceneShadowLight(scene.SceneShadowLightDir, scene.SceneShadowNightStrength);
|
||
}
|
||
#endregion
|
||
|
||
#region//通过Shader的Keyworld来设置一些效果的开关
|
||
//是否开启流光的效果
|
||
public void EnableShaderLightFlow(bool isEnable)
|
||
{
|
||
//禁止流光
|
||
if (isEnable)
|
||
{
|
||
Shader.EnableKeyword("_GONBEST_FLOW_ON");
|
||
Shader.DisableKeyword("_GONBEST_FLOW_OFF");
|
||
}
|
||
else
|
||
{
|
||
Shader.EnableKeyword("_GONBEST_FLOW_OFF");
|
||
Shader.DisableKeyword("_GONBEST_FLOW_ON");
|
||
}
|
||
|
||
}
|
||
|
||
//是否开启阴影的效果
|
||
public void EnableShaderShadow(bool isEnable)
|
||
{
|
||
if (isEnable)
|
||
{
|
||
Shader.EnableKeyword("_GONBEST_SHADOW_ON");
|
||
Shader.DisableKeyword("_GONBEST_SHADOW_OFF");
|
||
}
|
||
else
|
||
{
|
||
Shader.EnableKeyword("_GONBEST_SHADOW_OFF");
|
||
Shader.DisableKeyword("_GONBEST_SHADOW_ON");
|
||
}
|
||
|
||
}
|
||
|
||
//是否开启下雨的效果
|
||
public void EnableShaderRain(bool isEnable)
|
||
{
|
||
if (isEnable)
|
||
{
|
||
Shader.DisableKeyword("_GONBEST_RAIN_OFF");
|
||
Shader.EnableKeyword("_GONBEST_RAIN_ON");
|
||
}
|
||
else
|
||
{
|
||
Shader.DisableKeyword("_GONBEST_RAIN_ON");
|
||
Shader.EnableKeyword("_GONBEST_RAIN_OFF");
|
||
}
|
||
}
|
||
|
||
//是否开启高度雾
|
||
public void EnableHighFog(bool isEnable)
|
||
{
|
||
if (isEnable)
|
||
{
|
||
Shader.DisableKeyword("_GONBEST_HEIGHT_FOG_OFF");
|
||
Shader.EnableKeyword("_GONBEST_HEIGHT_FOG_ON");
|
||
}
|
||
else
|
||
{
|
||
Shader.DisableKeyword("_GONBEST_HEIGHT_FOG_ON");
|
||
Shader.EnableKeyword("_GONBEST_HEIGHT_FOG_OFF");
|
||
}
|
||
}
|
||
|
||
//刷新阴影效果
|
||
public void RefreshShadow()
|
||
{
|
||
int castValue = GameSettingCore.Get(GameSettingKeyCode.CastShadowLevel);
|
||
int recValue = GameSettingCore.Get(GameSettingKeyCode.EnableReceiveShadow);
|
||
if(castValue > 0 && recValue > 0)
|
||
{
|
||
PostEffectManager.Instance.EnablePlayerShadow(true);
|
||
PostEffectManager.Instance.SetCullingMaskModle(castValue);
|
||
}
|
||
else
|
||
{
|
||
PostEffectManager.Instance.EnablePlayerShadow(false);
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|