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(); if (outline != null) { emblemNameText.GetComponent().OutlineColor = new Color32(104, 60, 0, 255); } } } }