123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System.Collections.Generic;
- using XGame.Framework.UI;
- namespace FL.FGUI
- {
- public static partial class UIKeys
- {
- private static Dictionary<string, UIKey> _nameToKeys;
- private static Dictionary<UIKey, UILayer> _uikeyToLayerMap;
- public static UIKey NameToKey(string uiName)
- {
- if (_nameToKeys == null)
- {
- _nameToKeys = new Dictionary<string, UIKey>();
- }
- if (_nameToKeys.TryGetValue(uiName, out UIKey key))
- {
- return key;
- }
- var property = typeof(UIKeys).GetProperty(uiName, System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.IgnoreCase);
- if (property != null)
- {
- key = property.GetValue(null) as UIKey;
- _nameToKeys.Add(uiName, key);
- return key;
- }
- XGame.Log.Error($"找不到UIKey. uiName:{uiName}");
- return default;
- }
- public static UILayer GetLayer(UIKey uikey)
- {
- if (_uikeyToLayerMap == null)
- {
- _uikeyToLayerMap = new Dictionary<UIKey, UILayer>();
- }
- if (_uikeyToLayerMap.TryGetValue(uikey, out var layer))
- {
- return layer;
- }
- layer = UILayer.Normal;
- var property = uikey.UIViewType.GetProperty("Layer", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.IgnoreCase);
- if (property != null)
- {
- layer = (UILayer)property.GetValue(null);
- }
- _uikeyToLayerMap.Add(uikey, layer);
- return layer;
- }
- public static void Dispose()
- {
- _nameToKeys?.Clear();
- _nameToKeys = null;
- _uikeyToLayerMap?.Clear();
- _uikeyToLayerMap = null;
- }
- }
- }
|