using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
|
public class BattleBuffCell : MonoBehaviour
|
{
|
ImageEx m_buffIcon;
|
ImageEx buffIcon
|
{
|
get
|
{
|
if (m_buffIcon == null)
|
{
|
m_buffIcon = this.transform.GetComponent<ImageEx>("Container_BuffCell/Img_Icon");
|
}
|
return m_buffIcon;
|
}
|
}
|
|
Button m_buffButton;
|
Button buffButton
|
{
|
get
|
{
|
if (m_buffButton == null)
|
{
|
m_buffButton = gameObject.GetComponent<Button>();
|
}
|
return m_buffButton;
|
}
|
}
|
|
TextEx m_BuffLayer;
|
|
TextEx buffLayer
|
{
|
get
|
{
|
if (m_BuffLayer == null)
|
{
|
m_BuffLayer = this.transform.GetComponent<TextEx>("Container_BuffCell/Text_Layer");
|
}
|
return m_BuffLayer;
|
}
|
}
|
|
void Awake()
|
{
|
LoadPrefab();
|
}
|
|
GameObject cellContainer;
|
|
private void LoadPrefab()
|
{
|
if (cellContainer != null)
|
return;
|
|
var tmp = transform.Find("Container_BuffCell");
|
if (tmp != null)
|
{
|
cellContainer = tmp.gameObject;
|
return;
|
}
|
|
if (cellContainer == null)
|
{
|
cellContainer = UIUtility.CreateWidget("BattleBuffCell", "Container_BuffCell");
|
if (cellContainer != null)
|
{
|
cellContainer.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one);
|
cellContainer.transform.SetAsFirstSibling();
|
}
|
}
|
|
//缩放到和父rect一样大
|
// var scale = 1f;
|
// var rect = cellContainer.GetComponent<RectTransform>();
|
// var parentRect = transform.GetComponent<RectTransform>();
|
// float width = parentRect.sizeDelta.x;
|
// if (width <= 0f)
|
// {
|
// //外部控制了尺寸获取为0
|
// GridLayoutGroup grid = GetComponentInParent<GridLayoutGroup>();
|
// if (grid != null)
|
// {
|
// width = grid.cellSize.x;
|
// }
|
|
// }
|
// scale = width / rect.sizeDelta.x;
|
// cellContainer.transform.localScale = cellContainer.transform.localScale * scale;
|
}
|
|
public void Init(HB428_tagSCBuffRefresh buffData, Action onclick = null, bool showType = false)
|
{
|
if (null == buffData || gameObject == null)
|
{
|
return;
|
}
|
LoadPrefab(); //存在被卸载的可能,重新加载
|
var config = SkillConfig.Get((int)buffData.SkillID);
|
if (config == null)
|
{
|
Debug.LogErrorFormat("技能未配置 : {0}", buffData.SkillID);
|
return;
|
}
|
buffIcon.SetOrgSprite(config.BuffIconName, "BuffIcon");
|
|
buffButton.AddListener(() =>
|
{
|
onclick?.Invoke();
|
});
|
|
buffLayer.text = buffData.Layer == 0 ? "" : buffData.Layer.ToString();
|
}
|
}
|