From f912fa280a01974631832aeff7ce2c073040cb64 Mon Sep 17 00:00:00 2001 From: laurids Date: Sun, 22 Nov 2020 17:11:28 +0100 Subject: [PATCH] Transport UI Part 3 --- .../Prefabs/UI/TransportUI/ItemIcon.prefab | 19 ++- .../Prefabs/UI/TransportUI/UnitIcon.prefab | 18 ++- Assets/GWConquest/Scenes/GalaxyMap.unity | 11 +- Assets/GWConquest/Scripts/GameManager.cs | 1 + Assets/GWConquest/Scripts/Inventory.cs | 46 ++++++- Assets/GWConquest/Scripts/UI/GWLayout.cs | 58 +++++++++ Assets/GWConquest/Scripts/UI/TransportUI.cs | 93 +++++++------- .../Scripts/UI/TransportUIElement.cs | 117 ++++++++++-------- .../Scripts/UI/TransportUIItemIcon.cs | 30 +++++ .../Scripts/UI/TransportUIItemIcon.cs.meta | 11 ++ .../Scripts/UI/TransportUIUnitIcon.cs | 26 ++++ .../Scripts/UI/TransportUIUnitIcon.cs.meta | 11 ++ Assets/GWConquest/Scripts/Util.cs | 2 + 13 files changed, 340 insertions(+), 103 deletions(-) create mode 100644 Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs create mode 100644 Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs.meta create mode 100644 Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs create mode 100644 Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs.meta diff --git a/Assets/GWConquest/Prefabs/UI/TransportUI/ItemIcon.prefab b/Assets/GWConquest/Prefabs/UI/TransportUI/ItemIcon.prefab index d09bc4c..cbbefe6 100644 --- a/Assets/GWConquest/Prefabs/UI/TransportUI/ItemIcon.prefab +++ b/Assets/GWConquest/Prefabs/UI/TransportUI/ItemIcon.prefab @@ -107,6 +107,7 @@ GameObject: - component: {fileID: 6815987390155653560} - component: {fileID: 6815987390155653558} - component: {fileID: 1138806303401438636} + - component: {fileID: 2625037691328288990} m_Layer: 5 m_Name: ItemIcon m_TagString: Untagged @@ -133,8 +134,8 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: 10, y: 0} - m_SizeDelta: {x: 70, y: 35} - m_Pivot: {x: 0, y: 0.5} + m_SizeDelta: {x: 35, y: 35} + m_Pivot: {x: 0, y: 1} --- !u!222 &6815987390155653558 CanvasRenderer: m_ObjectHideFlags: 0 @@ -158,6 +159,20 @@ MonoBehaviour: Padding: 0 Horizontal: 1 Vertical: 0 +--- !u!114 &2625037691328288990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6815987390155653563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b2d51b1b7888cf746a92268bf10b8826, type: 3} + m_Name: + m_EditorClassIdentifier: + Icon: {fileID: 6815987390313110545} + Amount: {fileID: 6815987389502116016} --- !u!1 &6815987390313110547 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/GWConquest/Prefabs/UI/TransportUI/UnitIcon.prefab b/Assets/GWConquest/Prefabs/UI/TransportUI/UnitIcon.prefab index 48893b3..15d5981 100644 --- a/Assets/GWConquest/Prefabs/UI/TransportUI/UnitIcon.prefab +++ b/Assets/GWConquest/Prefabs/UI/TransportUI/UnitIcon.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 7040377985677660588} - component: {fileID: 7040377985677661732} - component: {fileID: 7040377985677660403} + - component: {fileID: -4965173851359396094} m_Layer: 5 m_Name: UnitIcon m_TagString: Untagged @@ -34,9 +35,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -25} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 50, y: 50} - m_Pivot: {x: 0, y: 0.5} + m_Pivot: {x: 0, y: 1} --- !u!222 &7040377985677661732 CanvasRenderer: m_ObjectHideFlags: 0 @@ -74,3 +75,16 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &-4965173851359396094 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7040377985677661857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f80b781d245838f4a87b3ba82178d152, type: 3} + m_Name: + m_EditorClassIdentifier: + Icon: {fileID: 7040377985677660403} diff --git a/Assets/GWConquest/Scenes/GalaxyMap.unity b/Assets/GWConquest/Scenes/GalaxyMap.unity index 45e5b51..64754d9 100644 --- a/Assets/GWConquest/Scenes/GalaxyMap.unity +++ b/Assets/GWConquest/Scenes/GalaxyMap.unity @@ -25706,7 +25706,8 @@ MonoBehaviour: MoveToFlankCooldown: 15 MoveToReserveCooldown: 15 UnitDeathCooldown: 60 - DefaultStorageCapacity: 1000 + DefaultStorageCapacity: 10000 + MaxStackSize: 500 DefaultProductionCooldown: 1 SpawnAIPlayer: 1 --- !u!4 &426309784 @@ -42623,7 +42624,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &765894939 RectTransform: m_ObjectHideFlags: 0 @@ -68000,7 +68001,7 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 4, y: 20} m_Pivot: {x: 0.5, y: 0.5} @@ -80195,7 +80196,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1437555322 RectTransform: m_ObjectHideFlags: 0 @@ -90641,7 +90642,7 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 4, y: 20} m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GWConquest/Scripts/GameManager.cs b/Assets/GWConquest/Scripts/GameManager.cs index 4984557..1e89aa1 100644 --- a/Assets/GWConquest/Scripts/GameManager.cs +++ b/Assets/GWConquest/Scripts/GameManager.cs @@ -20,6 +20,7 @@ namespace GWConquest public float UnitDeathCooldown; public int DefaultStorageCapacity; + public int MaxStackSize; public float DefaultProductionCooldown; diff --git a/Assets/GWConquest/Scripts/Inventory.cs b/Assets/GWConquest/Scripts/Inventory.cs index 82db45f..ee92d07 100644 --- a/Assets/GWConquest/Scripts/Inventory.cs +++ b/Assets/GWConquest/Scripts/Inventory.cs @@ -1,6 +1,7 @@ using UdpKit; using Bolt; using System.Linq; +using System.Collections.Generic; using UnityEngine; namespace GWConquest @@ -8,7 +9,9 @@ namespace GWConquest [System.Serializable] public class ItemStack : IIconObject { - public const int MaxStackSize = 50; + public static int MaxStackSize { + get => GameManager.Instance.MaxStackSize; + } public bool IsUnit; public string ItemName; @@ -77,6 +80,24 @@ namespace GWConquest }; } + public ItemStack Copy() { + return new ItemStack() { + IsUnit = IsUnit, + Unit = Unit, + ItemName = ItemName, + Stackable = Stackable, + Amount = Amount + }; + } + + public static bool ItemsEqual(ItemStack stack1, ItemStack stack2) + { + return stack1.IsUnit == stack2.IsUnit + && (stack1.IsUnit ? + (stack1.Unit == stack2.Unit) : + (stack1.ItemName == stack2.ItemName)); + } + } public class InventoryToken : BoltListToken @@ -173,5 +194,28 @@ namespace GWConquest } } + public static IEnumerable AddAllItems(IEnumerable items) + { + //TODO Unit Items + + Dictionary dict = new Dictionary(); + + foreach(var stack in items) + { + if(stack.IsUnit) + continue; + + if(dict.ContainsKey(stack.ItemName)) + { + dict[stack.ItemName].Amount += stack.Amount; + } + else { + dict[stack.ItemName] = stack.Copy(); + } + } + + return dict.Values; + } + } } \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/GWLayout.cs b/Assets/GWConquest/Scripts/UI/GWLayout.cs index f1e612d..332ab5c 100644 --- a/Assets/GWConquest/Scripts/UI/GWLayout.cs +++ b/Assets/GWConquest/Scripts/UI/GWLayout.cs @@ -1,4 +1,7 @@ using UnityEngine; +using System.Collections.Generic; +using System; +using System.Linq; namespace GWConquest { @@ -6,6 +9,11 @@ namespace GWConquest void UpdateLayout(); } + public interface IUpdatable { + T GetObject(); + void UpdateDisplay(T obj); + } + public class GWLayout { public static void UpdateLayout(RectTransform rt) { @@ -37,5 +45,55 @@ namespace GWConquest anchoredPosition[axis] = (axis == 0) ? (pos + rect.sizeDelta[axis] * rect.pivot[axis] * scaleFactor) : (-pos - rect.sizeDelta[axis] * (1f - rect.pivot[axis]) * scaleFactor); rect.anchoredPosition = anchoredPosition; } + + public static void UpdateGameObjects(List updatables, List objects, Func updatableConstructor, Func objectComparer = null) where V : IUpdatable{ + + if(objectComparer == null) + { + objectComparer = (o1,o2) => o1.Equals(o2); + } + + List toDestroyList = new List(); + List objectsCopy = new List(); + objectsCopy.AddRange(objects); + + foreach(var updatable in updatables) + { + var obj = updatable.GetObject(); + if(objectsCopy.Exists(o => objectComparer(o, obj))) + { + var newObj = objectsCopy.First(o => objectComparer(o, obj)); + updatable.UpdateDisplay(newObj); + objectsCopy.Remove(newObj); + } + else { + toDestroyList.Add(updatable); + } + } + + foreach(var updatable in toDestroyList) + { + var comp = updatable as Component; + UnityEngine.Object.Destroy(comp.gameObject); + updatables.Remove(updatable); + } + + foreach(var obj in objectsCopy) + { + var updatable = updatableConstructor(obj); + updatables.Add(updatable); + } + + updatables.Sort((a, b) => { + return objects.IndexOf(a.GetObject()) - objects.IndexOf(b.GetObject()); + }); + + for(int i = 0; i < updatables.Count; i++) + { + var comp = updatables[i] as Component; + comp.transform.SetSiblingIndex(i); + } + + } } } \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/TransportUI.cs b/Assets/GWConquest/Scripts/UI/TransportUI.cs index c52b043..a95002f 100644 --- a/Assets/GWConquest/Scripts/UI/TransportUI.cs +++ b/Assets/GWConquest/Scripts/UI/TransportUI.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; +using System.Linq; namespace GWConquest { @@ -12,6 +13,12 @@ namespace GWConquest public RectTransform ContentTransform; public RectTransform ItemsTransform; public Text PlanetNameText; + + [System.NonSerialized] + public List SubElementList = new List(); + + [System.NonSerialized] + public List ItemIconList = new List(); } public TransportUIPanel GroundPanel; @@ -35,6 +42,10 @@ namespace GWConquest GWLayout.UpdateLayout(GroundPanel.ContentTransform); } + private void FixedUpdate() { + UpdatePanel(GroundPanel); + } + private TransportUIElement AddElement(RectTransform parent) { var elementGO = Instantiate(ElementPrefab); @@ -51,66 +62,60 @@ namespace GWConquest return elementComp; } - private void RebuildItemsPanel(RectTransform parent, Dictionary items) + public void RebuildPanel(TransportUIPanel panel) { - Util.DestroyAllChildren(parent); - - foreach(var itemType in items) - { - var item = ItemRegistry.Instance.GetEntry(itemType.Key); - var amount = itemType.Value; + Util.DestroyAllChildren(panel.ContentTransform); + panel.SubElementList.Clear(); - var itemIconGO = Instantiate(ItemIconPrefab); + GWLayout.UpdateLayout(panel.ContentTransform); - itemIconGO.GetComponentInChildren().sprite = item.Icon; - itemIconGO.GetComponentInChildren().color = item.Color; - itemIconGO.GetComponentInChildren().text = amount.ToString(); + Util.DestroyAllChildren(panel.ItemsTransform); + panel.ItemIconList.Clear(); - itemIconGO.GetComponent().SetParent(parent); - itemIconGO.GetComponent().anchoredPosition = Vector2.zero; - } + GWLayout.UpdateLayout(panel.ItemsTransform); - GWLayout.UpdateLayout(parent); + panel.PlanetNameText.text = CurrentPlanet.planetName; } - public void RebuildPanel(TransportUIPanel panel) + public void UpdatePanel(TransportUIPanel panel) { - Util.DestroyAllChildren(panel.ContentTransform); + IEnumerable objects = null; - Dictionary allItems = new Dictionary(); + IEnumerable itemStacks = null; if(panel == GroundPanel) { - foreach(Zone z in CurrentPlanet.groundZones) - { - District d = z.GetComponent(); - if(d != null) - { - var elementComp = AddElement(panel.ContentTransform); - - elementComp.IsDistrict = true; - elementComp.District = d; - elementComp.Rebuild(); - - foreach(ItemStack stack in d.Inventory) - { - if(allItems.ContainsKey(stack.ItemName)) - { - allItems[stack.ItemName] += stack.Amount; - } - else { - allItems[stack.ItemName] = stack.Amount; - } - } - } - } + var districts = CurrentPlanet.groundZones.Where(z => z.GetComponent() != null).Select((z,i) => z.GetComponent()); + + itemStacks = districts.SelectMany(d => d.Inventory); + + objects = districts.Cast(); } - GWLayout.UpdateLayout(panel.ContentTransform); + GWLayout.UpdateGameObjects(panel.SubElementList, objects.ToList(), d => { + var elementComp = AddElement(panel.ContentTransform); - RebuildItemsPanel(panel.ItemsTransform, allItems); + elementComp.IsDistrict = true; + elementComp.District = d as District; + elementComp.Rebuild(); - panel.PlanetNameText.text = CurrentPlanet.planetName; + return elementComp; + }); + + var addedItems = Inventory.AddAllItems(itemStacks); + + GWLayout.UpdateGameObjects(panel.ItemIconList, addedItems.ToList(), item => { + var itemIconGO = Instantiate(ItemIconPrefab); + + itemIconGO.GetComponent().SetParent(panel.ItemsTransform); + itemIconGO.GetComponent().anchoredPosition = Vector2.zero; + + var itemIconComp = itemIconGO.GetComponent(); + + itemIconComp.UpdateDisplay(item); + + return itemIconComp; + }, (i1,i2) => ItemStack.ItemsEqual(i1,i2)); } } } diff --git a/Assets/GWConquest/Scripts/UI/TransportUIElement.cs b/Assets/GWConquest/Scripts/UI/TransportUIElement.cs index 97bd9ec..43c8e1c 100644 --- a/Assets/GWConquest/Scripts/UI/TransportUIElement.cs +++ b/Assets/GWConquest/Scripts/UI/TransportUIElement.cs @@ -1,10 +1,11 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; +using System.Linq; namespace GWConquest { - public class TransportUIElement : MonoBehaviour + public class TransportUIElement : MonoBehaviour, IUpdatable { public Image SpriteImage; public Text NameText; @@ -27,6 +28,10 @@ namespace GWConquest private List ChildrenList = new List(); + private List UnitIconList = new List(); + private List ItemIconList = new List(); + + [System.NonSerialized] public bool IsDistrict; @@ -69,7 +74,7 @@ namespace GWConquest } else { //TODO - return null; + return new List(); } } @@ -82,83 +87,97 @@ namespace GWConquest } ChildrenList.Clear(); + + + Util.DestroyAllChildren(UnitIconsTransform); + UnitIconList.Clear(); + + Util.DestroyAllChildren(ItemIconsTransform); + ItemIconList.Clear(); + + var AllItems = GetAllItems(); - var SubFormations = GetSubFormations(); - if(SubFormations != null) + if(IsDistrict) { - foreach(Formation f in SubFormations) - { - var subElGO = Instantiate(SubElementPrefab); + SpriteImage.sprite = District.GetCurrentSprite(); + NameText.text = District.GetDistrictName(); + } + else { + NameText.text = Formation.FormationName; + } + + UpdateDisplay(null); + + + } - var elementRT = subElGO.GetComponent(); + public void UpdateDisplay(object obj) + { + var SubFormations = GetSubFormations().Cast(); - elementRT.SetParent(ChildrenTransform); - elementRT.anchoredPosition = Vector2.zero; - var size = elementRT.sizeDelta; - size.x = 0f; - elementRT.sizeDelta = size; + GWLayout.UpdateGameObjects(ChildrenList, SubFormations.ToList(), d => { + var subElGO = Instantiate(SubElementPrefab); - var elementComp = subElGO.GetComponent(); - elementComp.IsDistrict = false; - elementComp.Formation = f; - elementComp.Rebuild(); + var elementRT = subElGO.GetComponent(); - ChildrenList.Add(elementComp); - } - } + elementRT.SetParent(ChildrenTransform); + elementRT.anchoredPosition = Vector2.zero; + var size = elementRT.sizeDelta; + size.x = 0f; + elementRT.sizeDelta = size; - UnitIconsTransform.SetAsLastSibling(); - ItemIconsTransform.SetAsLastSibling(); + var elementComp = subElGO.GetComponent(); + elementComp.IsDistrict = false; + elementComp.Formation = d as Formation; + elementComp.Rebuild(); - Util.DestroyAllChildren(UnitIconsTransform); + return elementComp; + }); if(!IsDistrict) { var AllUnits = Formation.Units; - - foreach(Unit unit in AllUnits) - { + GWLayout.UpdateGameObjects(UnitIconList, AllUnits.ToList(), unit => { var unitIconGO = Instantiate(UnitIconPrefab); - unitIconGO.GetComponentInChildren().sprite = unit.Icon; - unitIconGO.GetComponent().SetParent(UnitIconsTransform); unitIconGO.GetComponent().anchoredPosition = Vector2.zero; - } - } - Util.DestroyAllChildren(ItemIconsTransform); + var unitIconComp = unitIconGO.GetComponent(); - var AllItems = GetAllItems(); + unitIconComp.UpdateDisplay(unit); - foreach(ItemStack stack in AllItems) - { - var itemIconGO = Instantiate(ItemIconPrefab); + return unitIconComp; + }); + } - itemIconGO.GetComponentInChildren().sprite = stack.Icon; - itemIconGO.GetComponentInChildren().color = stack.IconColor; - itemIconGO.GetComponentInChildren().text = stack.Amount.ToString(); + var AllItems = GetAllItems(); + GWLayout.UpdateGameObjects(ItemIconList, AllItems.ToList(), item => { + var itemIconGO = Instantiate(ItemIconPrefab); itemIconGO.GetComponent().SetParent(ItemIconsTransform); itemIconGO.GetComponent().anchoredPosition = Vector2.zero; - } - //LayoutRebuilder.MarkLayoutForRebuild(ItemIconsTransform); + var itemIconComp = itemIconGO.GetComponent(); + itemIconComp.UpdateDisplay(item); + + return itemIconComp; + }, (i1,i2) => ItemStack.ItemsEqual(i1,i2)); + + UnitIconsTransform.SetAsLastSibling(); + ItemIconsTransform.SetAsLastSibling(); + } + + public object GetObject() + { if(IsDistrict) { - SpriteImage.sprite = District.GetCurrentSprite(); - NameText.text = District.GetDistrictName(); + return District; } else { - NameText.text = Formation.FormationName; + return Formation; } - - //LayoutRebuilder.MarkLayoutForRebuild(GetComponent()); - - //LayoutRebuilder.ForceRebuildLayoutImmediate(GetComponent()); - - } diff --git a/Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs b/Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs new file mode 100644 index 0000000..23dc641 --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs @@ -0,0 +1,30 @@ +using UnityEngine.UI; +using UnityEngine; + +namespace GWConquest { + + public class TransportUIItemIcon : MonoBehaviour, IUpdatable { + + public Image Icon; + public Text Amount; + + + [System.NonSerialized] + private ItemStack Stack; + + public void UpdateDisplay(ItemStack stack) + { + Stack = stack; + + Icon.sprite = Stack.Icon; + Icon.color = Stack.IconColor; + Amount.text = Stack.Amount.ToString(); + } + + public ItemStack GetObject() + { + return Stack; + } + + } +} \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs.meta b/Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs.meta new file mode 100644 index 0000000..c8cfb8f --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/TransportUIItemIcon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b2d51b1b7888cf746a92268bf10b8826 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs b/Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs new file mode 100644 index 0000000..546cd74 --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs @@ -0,0 +1,26 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace GWConquest +{ + + public class TransportUIUnitIcon : MonoBehaviour, IUpdatable + { + public Image Icon; + + [System.NonSerialized] + private Unit Unit; + + public void UpdateDisplay(Unit unit) + { + Unit = unit; + + Icon.sprite = Unit.Icon; + } + + public Unit GetObject() + { + return Unit; + } + } +} diff --git a/Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs.meta b/Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs.meta new file mode 100644 index 0000000..9dbd209 --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/TransportUIUnitIcon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f80b781d245838f4a87b3ba82178d152 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Scripts/Util.cs b/Assets/GWConquest/Scripts/Util.cs index 93765d8..8b7e433 100644 --- a/Assets/GWConquest/Scripts/Util.cs +++ b/Assets/GWConquest/Scripts/Util.cs @@ -183,6 +183,8 @@ namespace GWConquest return str == null || str == ""; } + + } } \ No newline at end of file