95 lines
1.8 KiB
C#
95 lines
1.8 KiB
C#
// ***********************************************************************
|
|
// Assembly : Game
|
|
// Author : Kimch
|
|
// Created : 2021-12-31
|
|
// Description :
|
|
// Last Modified By :
|
|
// Last Modified On :
|
|
// ***********************************************************************
|
|
// <copyright file= "QualityProxy" company="Kunpo"></copyright>
|
|
// <summary></summary>
|
|
// ***********************************************************************
|
|
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace G
|
|
{
|
|
/// <summary>
|
|
/// 游戏品质
|
|
/// </summary>
|
|
public class QualityProxy : F.GameProxy
|
|
{
|
|
public enum QualityLevel
|
|
{
|
|
Low = 1,
|
|
High,
|
|
}
|
|
|
|
#region Field
|
|
|
|
QualityLevel _qualityLevel;
|
|
|
|
#endregion
|
|
|
|
#region Property
|
|
|
|
public QualityLevel qualityLevel
|
|
{
|
|
get { return _qualityLevel; }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Method
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="level"></param>
|
|
public void SetQualityLevel(QualityLevel level)
|
|
{
|
|
if (_qualityLevel != level)
|
|
{
|
|
_qualityLevel = level;
|
|
Application.targetFrameRate = (level == QualityLevel.High) ? 60 : 30;
|
|
|
|
PlayerPrefs.SetInt("effect_l", (int)_qualityLevel);
|
|
PlayerPrefs.Save();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Unity && Proxy
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public static QualityProxy Instance => GetInstance<QualityProxy>();
|
|
|
|
public override void InitCompleted()
|
|
{
|
|
int saveQuality = PlayerPrefs.GetInt("effect_l", 0);
|
|
if (saveQuality != 0)
|
|
{
|
|
_qualityLevel = (QualityLevel)saveQuality;
|
|
}
|
|
else
|
|
{
|
|
if (KPlatform.Instance.benchmarkLevel > 18)
|
|
{
|
|
SetQualityLevel(QualityLevel.High);
|
|
}
|
|
else
|
|
{
|
|
SetQualityLevel(QualityLevel.Low);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|