using System;
using System.ComponentModel;
using MemoryPack;
using Unity.Mathematics;
#if UNITY_5_3_OR_NEWER
using UnityEngine;
#endif
namespace Project.B.Player
{
#if UNITY_5_3_OR_NEWER
public enum VSyncCount
{
DontSync,
EveryVBlank,
EverySecondVBlank
}
public enum RealtimeGICPUUsage
{
Low,
Medium,
High,
Unlimited
}
public enum GlobalMipmapLimit
{
FullResolution,
HalfResolution,
QuarterResolution,
EighthResolution,
}
#endif
public enum Lang
{
[Description("zh-CN")]
CN,
[Description("en-US")]
EN,
[Description("ja-JP")]
JP,
}
///
/// 玩家设置
///
public class PlayerSettings
{
[Category("UI")]
[DisplayName("Settings_Lang")]
public Lang Lang { get; set; }
public string Language => Lang switch
{
Lang.EN => "en-US",
Lang.JP => "ja-JP",
_ => "zh-CN"
};
///
/// 灵敏度
///
[Category("控制")]
[DisplayName("Settings_Sensitivity")]
public float Sensitivity { get; set; } = 1.81f;
[DisplayName("Settings_Controller_Sensitivity")] public float GamePadSensitivity { get; set; } = 1;
[DisplayName("Settings_Touch_Sensitivity")] public float TouchSensitivity { get; set; } = 0.32f;
///
/// 视野
///
[Category("画面")]
[DisplayName("Settings_FOV")]
public int Fov { get; set; } = 90;
///
/// 第三人称视野
///
[DisplayName("Settings_TPS_FOV")]
public int TpsFov { get; set; } = 75;
///
/// 分辨率
///
[DisplayName("Settings_Resolution")] public int2 Resolution { get; set; }
///
/// 是否全屏
///
[DisplayName("Settings_FullScreen")] public bool IsFullScreen { get; set; }
[Category("质量")]
[DisplayName("Settings_Realtime_Reflection_Probes")]public bool RealtimeReflectionProbes { get; set; }
[DisplayName("Setting_Texture_Streaming")] public bool TextureStreaming { get; set; }
#if UNITY_5_3_OR_NEWER
[DisplayName("Settings_VSync_Count")]
public VSyncCount VSyncCount { get; set; }
[DisplayName("Settings_Realtime_GI_CPU_Usage")]
public RealtimeGICPUUsage RealtimeGICPUUsage { get; set; }
[DisplayName("Settings_Global_MipMap_Limit")]
public GlobalMipmapLimit GlobalMipmapLimit { get; set; }
[DisplayName("Settings_Anisotropic_Filtering")] public AnisotropicFiltering AnisotropicFiltering { get; set; }
[DisplayName("Settings_Shadowmask_Mode")] public ShadowmaskMode ShadowmaskMode { get; set; }
[DisplayName("Settings_SkinWeights")] public SkinWeights SkinWeights { get; set; }
#endif
}
}