add additional tab; fix config panel occlusion bug

This commit is contained in:
xpeng
2022-11-05 20:23:31 +01:00
parent d8f6d457e9
commit 0024144244
193 changed files with 9145 additions and 6072 deletions
+13 -10
View File
@@ -24,11 +24,11 @@ public class ConfigManager : MonoBehaviour
{
onConfigChanged += EnsureInitialization;
onConfigChanged += SaveFile;
ConfigPanelComponents = GetConfigPanelComponents();
EnsureInitialization();
}
void Start()
{
EnsureInitialization();
AddListenerToWidget(ConfigPanelComponents);
onConfigChanged?.Invoke();
}
@@ -37,6 +37,7 @@ public class ConfigManager : MonoBehaviour
if (hasInitialized)
return;
LoadFile();
ConfigPanelComponents = GetConfigPanelComponentsStatic();
UpdateConfigPanelFromConfig(ref ConfigPanelComponents);
hasInitialized = true;
}
@@ -88,6 +89,7 @@ public class ConfigManager : MonoBehaviour
public static GameObject GetConfigPanelWidget(string configKeyName)
{
EnsureInitialization();
foreach (var item in ConfigPanelComponents)
{
if (item.ConfigKeyName == configKeyName)
@@ -109,6 +111,13 @@ public class ConfigManager : MonoBehaviour
return _configPanelComponents;
}
private static List<ConfigPanelComponent> GetConfigPanelComponentsStatic()
{
var _configPanelComponents = new List<ConfigPanelComponent>();
_configPanelComponents = GameObject.FindObjectOfType<ConfigManager>().GetConfigPanelComponents();
return _configPanelComponents;
}
private void AddListenerToWidget(List<ConfigPanelComponent> _configPanelComponents)
{
foreach (var configPanelComponent in _configPanelComponents)
@@ -151,7 +160,7 @@ public class ConfigManager : MonoBehaviour
valueManager.onValueChanged.AddListener(delegate
{
var field = config.GetType().GetField(configPanelComponent.ConfigKeyName);
field.SetValue(config, valueManager.Value);
field.SetValue(config, valueManager.value);
onConfigChanged?.Invoke();
});
}
@@ -160,38 +169,32 @@ public class ConfigManager : MonoBehaviour
private static void UpdateConfigPanelFromConfig(ref List<ConfigPanelComponent> _configPanelComponents)
{
foreach (var configPanelComponent in _configPanelComponents)
{
Debug.Log(configPanelComponent.ConfigKeyName);
var componentObject = configPanelComponent.Widget;
if (componentObject.GetComponent<TMP_Dropdown>() != null)
{
var dropdown = componentObject.GetComponent<TMP_Dropdown>();
var field = config.GetType().GetField(configPanelComponent.ConfigKeyName);
dropdown.value = (int)field.GetValue(config);
dropdown.onValueChanged?.Invoke(dropdown.value);
}
else if (componentObject.GetComponent<Toggle>() != null)
{
var toggle = componentObject.GetComponent<Toggle>();
var field = config.GetType().GetField(configPanelComponent.ConfigKeyName);
toggle.isOn = (bool)field.GetValue(config);
toggle.onValueChanged?.Invoke(toggle.isOn);
}
else if (componentObject.GetComponent<Slider>() != null)
{
var slider = componentObject.GetComponent<Slider>();
var field = config.GetType().GetField(configPanelComponent.ConfigKeyName);
slider.value = (float)field.GetValue(config);
slider.onValueChanged?.Invoke(slider.value);
}
else if (componentObject.GetComponent<ValueManager>() != null)
{
var valueManager = componentObject.GetComponent<ValueManager>();
var field = config.GetType().GetField(configPanelComponent.ConfigKeyName);
valueManager.Value = (float)field.GetValue(config);
valueManager.onValueChanged?.Invoke();
valueManager.value = (float)field.GetValue(config);
}
}
}