using UnityEngine; using UnityEngine.UI; public class rewardPrefab : MonoBehaviour { public enum RewardVisualType { Coins, Material, PlayerExp, } [Header("self UI")] [SerializeField] Image reward_icon; [SerializeField] Text reward_name; [SerializeField] Text reward_count; // +12345 [Header("sprites")] [SerializeField] Sprite coin_sprite; [SerializeField] Sprite jiyisuipian; [SerializeField] Sprite player_exp; public void Bind(RewardVisualType rewardType, int amount) { if (reward_icon != null) { reward_icon.sprite = GetSprite(rewardType); } if (reward_name != null) { reward_name.text = GetDisplayName(rewardType); } if (reward_count != null) { reward_count.text = amount >= 0 ? $"+{amount}" : amount.ToString(); } } private Sprite GetSprite(RewardVisualType rewardType) { switch (rewardType) { case RewardVisualType.Coins: return coin_sprite; case RewardVisualType.Material: return jiyisuipian; case RewardVisualType.PlayerExp: return player_exp; default: return null; } } private static string GetDisplayName(RewardVisualType rewardType) { switch (rewardType) { case RewardVisualType.Coins: return "算力"; case RewardVisualType.Material: return "记忆碎片"; case RewardVisualType.PlayerExp: return "玩家经验"; default: return string.Empty; } } }