diff --git a/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs b/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs index 61797ca..9d9fcce 100644 --- a/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs +++ b/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs @@ -24,4 +24,10 @@ public interface IResetApplyAbleSettings : IResettable, IApplyAbleSettings /// /// ISettingsData类型的设置数据 ISettingsData Data { get; } + + /// + /// 获取数据类型信息 + /// + /// 表示数据类型的Type对象 + Type DataType { get; } } \ No newline at end of file diff --git a/GFramework.Game/setting/SettingsModel.cs b/GFramework.Game/setting/SettingsModel.cs index 0e223b9..7ea4d67 100644 --- a/GFramework.Game/setting/SettingsModel.cs +++ b/GFramework.Game/setting/SettingsModel.cs @@ -67,7 +67,7 @@ public class SettingsModel(IDataLocationProvider? locationProvider, where T : class, IResetApplyAbleSettings { _applicators[typeof(T)] = applicator; - _data[typeof(T)] = applicator.Data; + _data[applicator.DataType] = applicator.Data; return this; } diff --git a/GFramework.Godot/setting/GodotAudioSettings.cs b/GFramework.Godot/setting/GodotAudioSettings.cs index f8756c4..485ee8a 100644 --- a/GFramework.Godot/setting/GodotAudioSettings.cs +++ b/GFramework.Godot/setting/GodotAudioSettings.cs @@ -35,6 +35,7 @@ public class GodotAudioSettings(ISettingsModel model, AudioBusMap audioBusMap) } public ISettingsData Data { get; } = model.GetData(); + public Type DataType { get; } = typeof(AudioSettings); /// /// 设置指定音频总线的音量 diff --git a/GFramework.Godot/setting/GodotGraphicsSettings.cs b/GFramework.Godot/setting/GodotGraphicsSettings.cs index 10ec22b..2e43023 100644 --- a/GFramework.Godot/setting/GodotGraphicsSettings.cs +++ b/GFramework.Godot/setting/GodotGraphicsSettings.cs @@ -52,4 +52,5 @@ public class GodotGraphicsSettings(ISettingsModel model) : IResetApplyAbleSettin } public ISettingsData Data { get; } = model.GetData(); + public Type DataType { get; } = typeof(GraphicsSettings); } \ No newline at end of file diff --git a/GFramework.Godot/setting/GodotLocalizationSettings.cs b/GFramework.Godot/setting/GodotLocalizationSettings.cs index 36fe4bb..36665a7 100644 --- a/GFramework.Godot/setting/GodotLocalizationSettings.cs +++ b/GFramework.Godot/setting/GodotLocalizationSettings.cs @@ -49,4 +49,5 @@ public class GodotLocalizationSettings(ISettingsModel model, LocalizationMap loc } public ISettingsData Data { get; } = model.GetData(); + public Type DataType { get; } = typeof(LocalizationSettings); } \ No newline at end of file