89 lines
2.0 KiB
C#
89 lines
2.0 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class idolCardPrefab : MonoBehaviour
|
|
{
|
|
public Image idolProfile;
|
|
public Text idolDesName;
|
|
public Text idolName;
|
|
public Slider idol_xpSlider;
|
|
public Text idol_xpText;
|
|
public Image idol_levelIcon;
|
|
public Image idol_btmImage;
|
|
private Button cachedButton;
|
|
private System.Action clickAction;
|
|
|
|
private void Awake()
|
|
{
|
|
cachedButton = GetComponent<Button>();
|
|
if (cachedButton != null)
|
|
{
|
|
cachedButton.onClick.RemoveListener(HandleClicked);
|
|
cachedButton.onClick.AddListener(HandleClicked);
|
|
}
|
|
}
|
|
|
|
public void Setup(
|
|
Sprite profile,
|
|
string designation,
|
|
string heroName,
|
|
float sliderValue,
|
|
string xpText,
|
|
Sprite levelIcon,
|
|
Sprite bottomSprite,
|
|
Color sliderFillColor,
|
|
System.Action onClick)
|
|
{
|
|
clickAction = onClick;
|
|
|
|
if (idolProfile != null)
|
|
{
|
|
idolProfile.sprite = profile;
|
|
}
|
|
|
|
if (idolDesName != null)
|
|
{
|
|
idolDesName.text = designation ?? string.Empty;
|
|
}
|
|
|
|
if (idolName != null)
|
|
{
|
|
idolName.text = heroName ?? string.Empty;
|
|
}
|
|
|
|
if (idol_xpSlider != null)
|
|
{
|
|
idol_xpSlider.normalizedValue = Mathf.Clamp01(sliderValue);
|
|
|
|
if (idol_xpSlider.fillRect != null)
|
|
{
|
|
Image fillImage = idol_xpSlider.fillRect.GetComponent<Image>();
|
|
if (fillImage != null)
|
|
{
|
|
fillImage.color = sliderFillColor;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (idol_xpText != null)
|
|
{
|
|
idol_xpText.text = xpText ?? "UNKNOWN";
|
|
}
|
|
|
|
if (idol_levelIcon != null)
|
|
{
|
|
idol_levelIcon.sprite = levelIcon;
|
|
}
|
|
|
|
if (idol_btmImage != null)
|
|
{
|
|
idol_btmImage.sprite = bottomSprite;
|
|
}
|
|
}
|
|
|
|
private void HandleClicked()
|
|
{
|
|
clickAction?.Invoke();
|
|
}
|
|
}
|