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 } }