using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//公会徽章
|
//需增加UIFrame,UIEffectPlayer
|
[RequireComponent(typeof(UIFrame))]
|
[RequireComponent(typeof(UIEffectPlayer))]
|
public class GuildEmblemCell : MonoBehaviour
|
{
|
[SerializeField] Image emblemIcon;
|
[SerializeField] UIFrame frame;
|
[SerializeField] UIEffectPlayer uiEffect;
|
[Header("代码已处理 字 F9E29F 包边 683C00 字号72 Y:-18")]
|
[SerializeField] Text emblemNameText; //字 F9E29F 包边 683C00 字号36 Y-9
|
|
public void Display(int emblemID, string emblemName, float _scale = 1f)
|
{
|
FamilyEmblemConfig config = FamilyEmblemConfig.Get(emblemID);
|
if (config == null)
|
{
|
return;
|
}
|
if (emblemIcon == null)
|
{
|
Debug.LogError("公会徽章未设置");
|
return;
|
}
|
|
// 徽章动态效果按帧处理,如果后续要改成spine特效,则再商议修改
|
// 目前特效为附加表现
|
if (GuildEmblemModel.Instance.TryGetEffectID(emblemID, out int effectID))
|
{
|
if (effectID != 0)
|
{
|
uiEffect.effectId = effectID;
|
uiEffect.isPlaySpineLoop = true;
|
uiEffect.Play();
|
}
|
}
|
|
if (UIFrameMgr.Inst.ContainsDynamicImage(config.Image))
|
{
|
frame.ResetFrame(config.Image);
|
frame.enabled = true;
|
}
|
else
|
{
|
if (frame != null)
|
frame.enabled = false;
|
emblemIcon.SetSprite(config.Image);
|
emblemIcon.SetNativeSize();
|
}
|
emblemIcon.rectTransform.localScale = new Vector3(_scale, _scale, _scale);
|
if (emblemNameText != null)
|
{
|
emblemNameText.text = emblemName;
|
emblemNameText.fontSize = 72;
|
emblemNameText.rectTransform.localPosition = new Vector3(0, -18, 0);
|
emblemNameText.color = new Color32(255, 222, 159, 255);
|
var outline = emblemNameText.GetComponent<OutlineEx>();
|
if (outline != null)
|
{
|
emblemNameText.GetComponent<OutlineEx>().OutlineColor = new Color32(104, 60, 0, 255);
|
}
|
}
|
|
}
|
|
}
|