FuZhou_Custom_BulkCargo_3D/FuZhou_FirstPage/Assets/Scripts/Item/TabItem.cs

105 lines
2.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class TabItem : MonoBehaviour
{
public CustomItem customItem;
public Image showIcon;
public Text nameText;
public Sprite nochoseSprite;
public Sprite choseSprite;
public Font nochoseFont;
public Font choseFont;
public Vector2 posPercent;
private RectTransform parentRectTransform;
private RectTransform rectTransform;
void Awake()
{
parentRectTransform = transform.parent.GetComponent<RectTransform>();
rectTransform=GetComponent<RectTransform>();
#if UNITY_EDITOR
Debug.Log("地图比例:"+gameObject.name + " " + rectTransform.anchoredPosition.x / parentRectTransform.rect.width + " " + rectTransform.anchoredPosition.y / parentRectTransform.rect.height);
#endif
}
void Update()
{
rectTransform.anchoredPosition = new Vector2(posPercent.x * parentRectTransform.rect.width, posPercent.y * parentRectTransform.rect.height);
}
public void PointIn(BaseEventData data)
{
showIcon.gameObject.SetActive(true);
GetComponent<Image>().sprite = choseSprite;
//联动
if (customItem != null)
{
nameText.fontSize = 80;
nameText.font = choseFont;
nameText.color= Color.white;
customItem.PointIn(null);
}
}
public void PointOut(BaseEventData data)
{
//选中此关区,不切换状态
if (customItem != null && FirstPanel.currentChoseCustonItem == customItem)
{
return;
}
SetNoChoseState();
}
/// <summary>
/// 未选中状态
/// </summary>
public void SetNoChoseState()
{
showIcon.gameObject.SetActive(false);
GetComponent<Image>().sprite = nochoseSprite;
//联动
if (customItem != null)
{
nameText.fontSize = 60;
nameText.font = nochoseFont;
nameText.color = new Color(148f / 255f, 184f / 255f, 1, 1);
customItem.PointOut(null);
}
}
/// <summary>
/// 点击海关标签
/// </summary>
/// <param name="data"></param>
public void Click(BaseEventData data)
{
if (customItem != null)
{
//点海关,进入海关页面
customItem.EnterCity();
//其他状态取消
FirstPanel.instance.tab.GetComponentsInChildren<TabItem>().ToList().ForEach(a =>
{
if(a!=this)
{
a.SetNoChoseState();
}
else
{
//标签状态选中
a.PointIn(null);
}
});
}
}
}