using UnityEngine;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
|
//武将模型站台模块
|
public class HeroShowBaseCell : MonoBehaviour
|
{
|
|
Image m_QualityBG;
|
Image qualityBG //底座台子
|
{
|
get
|
{
|
if (m_QualityBG == null)
|
{
|
m_QualityBG = this.transform.GetComponent<Image>("Container_HeroShow/dz");
|
}
|
return m_QualityBG;
|
}
|
}
|
|
UIHeroController m_HeroModel;
|
UIHeroController heroModel
|
{
|
get
|
{
|
if (m_HeroModel == null)
|
{
|
m_HeroModel = this.transform.GetComponent<UIHeroController>("Container_HeroShow/rolemodel");
|
}
|
return m_HeroModel;
|
}
|
}
|
|
Transform m_StarRect;
|
Transform starRect
|
{
|
get
|
{
|
if (m_StarRect == null)
|
{
|
m_StarRect = this.transform.Find("Container_HeroShow/layout/layout/stars");
|
}
|
return m_StarRect;
|
}
|
}
|
|
List<Image> m_StarsImg;
|
List<Image> starsImg
|
{
|
get
|
{
|
if (m_StarsImg == null)
|
{
|
m_StarsImg = new List<Image>();
|
for (int i = 0; i < 5; i++)
|
{
|
var star = this.transform.GetComponent<Image>("Container_HeroShow/layout/layout/stars/star" + i);
|
m_StarsImg.Add(star);
|
}
|
}
|
return m_StarsImg;
|
}
|
}
|
|
|
Image m_LockState;
|
Image lockState
|
{
|
get
|
{
|
if (m_LockState == null)
|
{
|
m_LockState = this.transform.GetComponent<Image>("Container_HeroShow/lockstate");
|
}
|
return m_LockState;
|
}
|
}
|
|
Text m_Name;
|
Text nameText
|
{
|
get
|
{
|
if (m_Name == null)
|
{
|
m_Name = this.transform.GetComponent<Text>("Container_HeroShow/layout/name");
|
}
|
return m_Name;
|
}
|
}
|
|
|
Text m_LvText; //武将等级 + 觉醒等级
|
Text lvText
|
{
|
get
|
{
|
if (m_LvText == null)
|
{
|
m_LvText = this.transform.GetComponent<Text>("Container_HeroShow/layout/layout/lv");
|
}
|
return m_LvText;
|
}
|
}
|
|
OutlineEx m_LvTextOutline;
|
OutlineEx heroLVOutline
|
{
|
get
|
{
|
if (m_LvTextOutline == null)
|
{
|
m_LvTextOutline = this.transform.GetComponent<OutlineEx>("Container_HeroShow/layout/layout/lv");
|
}
|
return m_LvTextOutline;
|
}
|
}
|
|
Button m_StarBtn;
|
Button starBtn
|
{
|
get
|
{
|
if (m_StarBtn == null)
|
{
|
m_StarBtn = this.transform.GetComponent<Button>("Container_HeroShow/layout/layout/stars");
|
}
|
return m_StarBtn;
|
}
|
}
|
|
|
void Awake()
|
{
|
LoadPrefab();
|
}
|
|
// 武将模型站台显示
|
public void Init(int heroID, int skinID, int breakLevel = 0, int star = 0, int awakelv = 0, int lv = 0, bool isShowLock = false)
|
{
|
LoadPrefab(); //存在被卸载的可能,重新加载
|
var heroConfig = HeroConfig.Get(heroID);
|
qualityBG.SetSprite("herodz" + heroConfig.Quality);
|
// int skinID = 0;
|
// if (heroGuid != "")
|
// {
|
// var hero = HeroManager.Instance.GetHero(heroGuid);
|
// skinID = hero.SkinID;
|
// }
|
// else
|
// {
|
// skinID = heroConfig.SkinIDList[0];
|
// }
|
|
heroModel.Create(skinID, heroConfig.UIScale);
|
|
if (star == 0)
|
{
|
starRect.SetActive(false);
|
}
|
else
|
{
|
starRect.SetActive(true);
|
for (int i = 0; i < starsImg.Count; i++)
|
{
|
if ((star - 1) % starsImg.Count >= i)
|
{
|
starsImg[i].SetActive(true);
|
starsImg[i].SetSprite("herostar" + (((star - 1) / starsImg.Count) + 1) * starsImg.Count);
|
}
|
else
|
{
|
starsImg[i].SetActive(false);
|
}
|
}
|
}
|
|
lockState.SetActive(isShowLock);
|
|
nameText.text = breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, breakLevel);
|
nameText.color = UIHelper.GetUIColorByFunc(heroConfig.Quality);
|
if (lv == 0)
|
{
|
lvText.SetActive(false);
|
}
|
else
|
{
|
lvText.SetActive(true);
|
lvText.text = string.Format("{0}{1} {2}", Language.Get("L1094"), lv, awakelv == 0 ? Language.Get("herocard13") : Language.Get("herocard12", awakelv));
|
heroLVOutline.colorType = awakelv == 0 ? QualityTextColType.None : QualityTextColType.red;
|
}
|
|
starBtn.AddListener(() =>
|
{
|
SmallTipWin.showText = Language.Get("HeroGift14", star);
|
SmallTipWin.worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
|
UIManager.Instance.OpenWindow<SmallTipWin>();
|
});
|
}
|
|
GameObject cellContainer;
|
protected void LoadPrefab()
|
{
|
if (cellContainer != null)
|
return;
|
|
var tmp = transform.Find("Container_HeroShow");
|
if (tmp != null)
|
{
|
cellContainer = tmp.gameObject;
|
return;
|
}
|
if (cellContainer == null)
|
{
|
cellContainer = UIUtility.CreateWidget("HeroShowBaseCell", "Container_HeroShow");
|
|
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;
|
}
|
}
|