90 lines
2.6 KiB
C#
90 lines
2.6 KiB
C#
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Assets.Scripts.UI.Prefab.Player
|
|
{
|
|
public abstract class AbstractEquipmentScript : MonoBehaviour, IPointerExitHandler, IPointerEnterHandler, IPointerUpHandler
|
|
{
|
|
public Image Content;//装备图片
|
|
public GameObject bglock;
|
|
public GameObject bglockLight;//选中样式
|
|
public GameObject Click;//选中勾选
|
|
public GameObject lockGrey;//灰色的锁定
|
|
public GameObject lockLight;//白色的锁定 选中时使用
|
|
public Text Title;
|
|
public Text Desc;
|
|
|
|
protected int Id { get; set; }
|
|
protected string Name { get; set; }
|
|
protected string Remark { get; set; }
|
|
|
|
protected string URL { get; set; }
|
|
protected bool IsLock { get; set; }
|
|
protected virtual void Start()
|
|
{
|
|
var btn = GetComponent<Button>();
|
|
btn.onClick.AddListener(() =>
|
|
{
|
|
Select();
|
|
});
|
|
}
|
|
public virtual void Init(int id, string name, string remark, string url, bool isLock)
|
|
{
|
|
Id = id;
|
|
Name = name;
|
|
Remark = remark;
|
|
IsLock = isLock;
|
|
URL = url;
|
|
Utils.DisplayImage(Content, url);
|
|
}
|
|
|
|
public virtual void Select()
|
|
{
|
|
UnSelectAll();
|
|
bglockLight.SetActive(true);
|
|
if (lockGrey != null && lockLight != null)
|
|
{
|
|
lockLight.SetActive(IsLock);
|
|
lockGrey.SetActive(false);
|
|
}
|
|
Title.text = Name;
|
|
Desc.text = Remark;
|
|
}
|
|
|
|
public virtual void UnSelect()
|
|
{
|
|
bglockLight.SetActive(false);
|
|
if (lockGrey != null && lockLight != null)
|
|
{
|
|
lockGrey.SetActive(IsLock);
|
|
lockLight.SetActive(false);
|
|
}
|
|
}
|
|
|
|
public virtual void UnSelectAll()
|
|
{
|
|
var list = FindObjectsOfType<AbstractEquipmentScript>();
|
|
foreach (var item in list)
|
|
{
|
|
item.UnSelect();
|
|
}
|
|
}
|
|
|
|
public void OnPointerExit(PointerEventData eventData)
|
|
{
|
|
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
|
|
}
|
|
|
|
public void OnPointerEnter(PointerEventData eventData)
|
|
{
|
|
Cursor.SetCursor(Resources.Load<Texture2D>("Images/PointerButtonHover"), Vector2.zero, CursorMode.Auto);
|
|
}
|
|
|
|
public void OnPointerUp(PointerEventData eventData)
|
|
{
|
|
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
|
|
}
|
|
}
|
|
}
|