163 lines
4.7 KiB
C#

using Assets.Scripts;
using Assets.Scripts.Apis.Models;
using Assets.Scripts.UI.UIEffect;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class Item : PFUIPanel, IPointerEnterHandler, IPointerExitHandler, IPointerUpHandler
{
private Text text;
private string Text
{
get
{
return text.text;
}
set
{
text.text = value;
}
}
private Text km;
private string Distance
{
get
{
return km.text;
}
set
{
km.text = value;
}
}
private Text count;
private string Count
{
get
{
return count.text;
}
set
{
count.text = value;
}
}
public Action onClick;
private Transform hot;
protected override void Awake()
{
text = this.transform.Find("name").GetComponent<Text>();
km = this.transform.Find("km").GetComponent<Text>();
count = this.transform.Find("count").GetComponent<Text>();
Material material = null;
if (material == null)
{
material = Instantiate(Resources.Load<Material>("UI/Material/RoundedCornersTextureMaterial"));
}
var rect = ((RectTransform)transform).rect;
#if UNITY_ANDROID || UNITY_IOS
material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, 10, 0));
#else
material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, rect.height * 0.5f, 0));
#endif
this.GetComponent<Image>().material = material;
hot = this.transform.Find("Hot");
SetRounded(hot, 17);
//UIManager.AddEvent(this.gameObject, EventTriggerType.PointerClick, OnPointerClick);
transform.GetComponent<Button>().onClick.RemoveAllListeners();
transform.GetComponent<Button>().onClick.AddListener(() => {
if (onClick != null)
{
onClick();
}
});
}
public void Selected(bool value)
{
if (value)
{
this.GetComponent<UIGradient>().enabled = true;
this.GetComponent<UIGradient>().color1 = Utils.HexToColor("FF7485");
this.GetComponent<UIGradient>().color2 = Utils.HexToColor("F93086");
this.GetComponent<Image>().color = Color.white;
km.color = Color.white;
count.color = Color.white;
this.transform.Find("DistanceIcon").GetComponent<Image>().color = Color.white;
this.transform.Find("BikeIcon").GetComponent<Image>().color = Color.white;
hot.GetComponent<UIGradient>().color1 = Color.white;
hot.GetComponent<UIGradient>().color2 = Color.white;
hot.Find("PFUIText").GetComponent<Text>().color = Utils.HexToColor("F93086");
}
else
{
this.GetComponent<UIGradient>().enabled = false;
this.GetComponent<Image>().color = Utils.HexToColor("353543");
km.color = Utils.HexToColor("5C5C6E");
count.color = Utils.HexToColor("F93086");
this.transform.Find("DistanceIcon").GetComponent<Image>().color = Utils.HexToColor("5C5C6E");
this.transform.Find("BikeIcon").GetComponent<Image>().color = Utils.HexToColor("F93086");
hot.GetComponent<UIGradient>().color1 = Utils.HexToColor("FF7485");
hot.GetComponent<UIGradient>().color2 = Utils.HexToColor("F93086");
hot.Find("PFUIText").GetComponent<Text>().color = Color.white;
}
}
public void SetModel(NearRouteModel model)
{
this.Text = model.Name;
this.Distance = model.Distance.ToString("0.0") + "KM";
this.Count = model.TheHeat.ToString();
hot.gameObject.SetActive(model.IsFire);
}
// Start is called before the first frame update
protected override void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void OnPointerClick(BaseEventData eventData)
{
if(onClick != null)
{
onClick();
}
}
public void OnPointerEnter(PointerEventData eventData)
{
Cursor.SetCursor(Resources.Load<Texture2D>("Images/PointerButtonHover"), Vector2.zero, CursorMode.Auto);
}
public void OnPointerExit(PointerEventData eventData)
{
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
}
public void OnPointerUp(PointerEventData eventData)
{
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
}
}