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