public class GridUI : MonoBehaviour ,IPointerEnterHandler,IPointerExitHandler
//实现两个接口,用于进入和退出
{
//action system上的委托,无参数无返回值
public static Action<Transform> OnEnter;
public static Action OnExit;
public void OnPointerEnter(PointerEventData eventData)
{
if (eventData.pointerEnter.tag == "Grid")
{
if (OnEnter != null)
OnEnter(transform);
}
}
public void OnPointerExit(PointerEventData eventData)
{
if (eventData.pointerEnter.tag == "Grid")
{
if (OnExit != null)
OnExit();
}
}
}
用UI元素的世界坐标和canvas的RectTrasform,换算出元素在Canvas的2D坐标。
//获取鼠标的坐标
Vector2 position;
RectTransformUtility.ScreenPointToLocalPointInRectangle(GameObject.Find
("KnapsackUI").transform as RectTransform, Input.mousePosition, null, out position);