Unity-背包系统-ToolTip的控制

(1)经过昨天几个小时的努力终于是完成了 背包系统的 UI面板控制,但是并不意味着完成了,它只是单独存在的一小块,既然是模块化管理UI 。就应该将这一小块内容也交给 IventroyManager进行管理。
(2)完成昨天的第一条中的第二项,鼠标控制物品的显示与隐藏。
这里的实现原理:鼠标移入和移出。首先空的鼠标移入到物品槽内的时候,如果是空的话就不会产生一个交互,这个时候 Raycast Target 为false,当有物体的时候,使用事件机制,物品槽内有物品的时候即显示一个物品的信息在鼠标的右下角。
这里首先完成显示与隐藏:
实现一个接口方法,需要注意的是要引入命名空间 using UnityEngine.EventSystems;
IPointerEnterHandler(鼠标移入)
IPointerEnterHandler(鼠标移除)
在这里插入图片描述

这里的逻辑就是实现了这两个接口方法之后使用鼠标控制ToolTip 类中的显示与隐藏方法;
(3)显示隐藏 物品完成之后,接下来就是控制物品跟随鼠标一起,这个地方的做法是获取屏幕坐标点 也就是X 和 Y 轴。
这边顺便进行回忆一下 二维屏幕坐标系的 获取方法;
打开文档手册- RectTransformUtility 类中的一个方法 叫做 ScreenPointToLocalPointInRectangle 这个方法,将屏幕上的点转化为RectTransform上的点,UI中的点和游戏物体中的点是不一样的,这个方法的四个参数分别为;
在这里插入图片描述
rect:要将那个坐标转化为哪一个 ReceTransorm 坐标
Cam:计算屏幕坐标
ScreenPoint:鼠标坐标
LocalPont(二维坐标):转换后的坐标
(4)最后出现的一个问题就是文本框的位置发生了一个小小的偏移。偏移的公式计计算见下;
在这里插入图片描述

发布了29 篇原创文章 · 获赞 2 · 访问量 776

猜你喜欢

转载自blog.csdn.net/zhanxxiao/article/details/104567519
今日推荐