71 lines
1.7 KiB
C#
71 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|