Files
bansonic_beta_main/Assets/settingsPrefab/archievePrefab.cs
T

82 lines
2.6 KiB
C#

using JetBrains.Annotations;
using UnityEngine;
using UnityEngine.UI;
public class archievePrefab : MonoBehaviour
{
[Header("Inspector")]
public Image archieve_btmImage;
public Text archieve_name;
public Text archieve_description;
[Header("Rarity Background Sprites")]
public Sprite whiteLevelSprite;
public Sprite greenLevelSprite;
public Sprite blueLevelSprite;
public Sprite purpleLevelSprite;
public Sprite goldenLevelSprite;
public Sprite redLevelSprite;
public Sprite colorfulLevelSprite;
public void Setup(AchievementLevel level)
{
if (archieve_name != null) archieve_name.text = level.levelName;
if (archieve_description != null) archieve_description.text = level.description;
SetRarityVisuals(level.rarity);
}
private void SetRarityVisuals(AchievementRarity rarity)
{
if (archieve_btmImage == null) return;
Sprite targetSprite = whiteLevelSprite;
bool useBlackText = false;
switch (rarity)
{
case AchievementRarity.Common:
targetSprite = whiteLevelSprite;
useBlackText = true; // 白色底图用黑字
break;
case AchievementRarity.Advanced:
targetSprite = greenLevelSprite;
useBlackText = true; // 绿色底图用黑字
break;
case AchievementRarity.Rare:
targetSprite = blueLevelSprite;
useBlackText = false;
break;
case AchievementRarity.Epic:
targetSprite = purpleLevelSprite;
useBlackText = false;
break;
case AchievementRarity.Legendary:
targetSprite = goldenLevelSprite;
useBlackText = true; // 金色底图用黑字
break;
case AchievementRarity.Mythic:
targetSprite = redLevelSprite;
useBlackText = false;
break;
case AchievementRarity.Exquisite:
targetSprite = colorfulLevelSprite;
useBlackText = true; // 至臻底图用黑字
break;
}
// 1. 替换底图图片 (archieve_btmImage)
if (targetSprite != null)
{
archieve_btmImage.sprite = targetSprite;
archieve_btmImage.color = Color.white;
}
// 2. 根据底图亮度调整文字颜色 (archieve_name)
if (archieve_name != null)
{
archieve_name.color = useBlackText ? Color.black : Color.white;
}
}
}