WGL 1 місяць тому
батько
коміт
d33b507560

+ 5 - 0
ActionTowerDefense/Assets/Resources/Prefab/RougueUI/Shop_UI.prefab

@@ -3229,6 +3229,11 @@ MonoBehaviour:
   - {fileID: 513033384258021388}
   - {fileID: 9098013329581627513}
   - {fileID: 7253445694501669380}
+  treasureBackgrounds:
+  - {fileID: 21300000, guid: 8f3b16bc9aa84a840a8241b05e628e4e, type: 3}
+  - {fileID: 21300000, guid: 9e6f22d4e598bb84db092780d40f392c, type: 3}
+  - {fileID: 21300000, guid: 9ac31219c7bf16c4fb06a343c3f0fa65, type: 3}
+  - {fileID: 21300000, guid: f82a54b5fd1dc9e43bbe2f31be8ce76b, type: 3}
   interval: 40
   polygonInitMax: 5
   polygonMaxInterval: 2

+ 5 - 3
ActionTowerDefense/Assets/Scripts/UI/ShopUI.cs

@@ -19,7 +19,8 @@ public class ShopUI : MonoBehaviour
     [FoldoutGroup("组件")] public Sprite[] qualityBox;
     [FoldoutGroup("组件")] public Color[] qualitysText;
     [FoldoutGroup("组件")] public TextMeshProUGUI[] polygonText;
-    
+    [FoldoutGroup("组件")] public List<Sprite> treasureBackgrounds;
+
     [LabelText("标签间隔")] public float interval;
     [LabelText("雷达图初始最大值")] public int polygonInitMax;
     [LabelText("雷达图最大值间隔")] public int polygonMaxInterval;
@@ -110,6 +111,7 @@ public class ShopUI : MonoBehaviour
                 singleTreasureConfig.ID,
                 singleTreasureConfig.Name,
                 sprite,
+                treasureBackgrounds[singleTreasureConfig.Quality],
                 qualityBox[singleTreasureConfig.Quality],
                 qualitysText[singleTreasureConfig.Quality],
                 singleTreasureConfig.Tag,
@@ -167,6 +169,7 @@ public class ShopUI : MonoBehaviour
             {
                 GameObject obj = Instantiate(this.treasureInBag,bagContent);
                 GameObject objDetails = Instantiate(treasureDetails_inBag, detailsParent);
+                objDetails.SetActive(false);
                 treasureInBag = obj.GetComponent<TreasureInBag>();
                 treasuresSaleUI = objDetails.GetComponent<TreasuresSaleUI>();
             }
@@ -181,8 +184,7 @@ public class ShopUI : MonoBehaviour
             treasureInBag.shopUI = this;
             treasuresSaleUI.owner = treasureInBag;
             treasuresSaleUI.treasure = treasures[i];
-            treasuresSaleUI.gameObject.SetActive(false);
-            treasuresSaleUI.transform.position = treasuresSaleUI.owner.transform.position;
+            treasuresSaleUI.transform.position = treasureInBag.transform.position;
             treasureInBag.Refresh();
         }
         for(int i = treasures.Count; i < bagContent.childCount; i++)

+ 12 - 10
ActionTowerDefense/Assets/Scripts/UI/TreasuresSaleUI.cs

@@ -9,6 +9,7 @@ public struct Treasure
     public int id;
     public string name;
     public Sprite sprite;
+    public Sprite qualityBackground;
     public Sprite qualityBox;
     public Color qualityText;
     public List<int> tagsId;
@@ -18,11 +19,12 @@ public struct Treasure
     public List<string> type;
     public List<float> data;
 
-    public Treasure(int id, string name, Sprite sprite, Sprite qualityBox, Color qualityText, List<int> tagsId, List<Sprite> tags, string attribute, int price, List<string> type, List<float>data)
+    public Treasure(int id, string name, Sprite sprite, Sprite qualityBackground, Sprite qualityBox, Color qualityText, List<int> tagsId, List<Sprite> tags, string attribute, int price, List<string> type, List<float>data)
     {
         this.id = id;
         this.name = name;
         this.sprite = sprite;
+        this.qualityBackground = qualityBackground;
         this.qualityBox = qualityBox;
         this.qualityText = qualityText;
         this.tagsId = new List<int>(tagsId);
@@ -45,13 +47,20 @@ public class TreasuresSaleUI : MonoBehaviour
     [FoldoutGroup("×é¼þ")] public TextMeshProUGUI attribute;
     [FoldoutGroup("×é¼þ")] public ButtonUI buy;
     [FoldoutGroup("×é¼þ")] public TextMeshProUGUI price;
-    [FoldoutGroup("×é¼þ")] public List<Sprite> TreasureBackgrounds;
     [FoldoutGroup("×é¼þ")] public Image background;
 
     public bool islock;
     public bool isNull;
     public Treasure treasure;
     public TreasureInBag owner;
+    private void OnEnable()
+    {
+        if(owner != null)
+        {
+            transform.position = owner.transform.position;
+        }
+        
+    }
     private void Update()
     {
         if(owner!=null && gameObject.activeSelf)
@@ -96,15 +105,8 @@ public class TreasuresSaleUI : MonoBehaviour
                 tag.gameObject.SetActive(false);
             }
         }
-        if (treasure.tags.Count == 0)
-        {
-            background.sprite = TreasureBackgrounds[1];
-        }
-        else
-        {
-            background.sprite = TreasureBackgrounds[0];
-        }
         nameText.text = treasure.name;
+        background.sprite = treasure.qualityBackground;
         nameText.color = treasure.qualityText;
         attribute.text = treasure.attribute;
         if (price != null)