1.制作装备提示框

创建提示框,添加文本子对象,用来描述名称,类型以及属性加成

挂载垂直分配组件和文本大小适配组件,这样图像会根据文本大小来调整自己

创建UI_ItemTip脚本并挂载在文本框上:
**[SerializeField] private TextMeshProUGUI itemStringName;//三个文本
SerializeField\] private TextMeshProUGUI itemTypeName;
\[SerializeField\] private TextMeshProUGUI itemDescription;**
**\[SerializeField\] private float defaultFontSize = 60;//默认文本大小
void Start()
{**
**}**
**public void ShowToolTip(ItemData_Equipment item)//提示函数
{
if (item == null) return;**
**itemStringName.text = item.ItemName;
itemTypeName.text = item.equipmentType.ToString();
itemDescription.text = item.GetDescription();//获取相应的文本**
**if(itemStringName.text.Length \>13)//防止标题的字体大小过大
{
itemStringName.fontSize =itemStringName.fontSize\*.7f ;
}
gameObject.SetActive(true);
}**
**public void HideToolTip()//关闭函数
{
itemStringName.fontSize = defaultFontSize;
gameObject.SetActive(false);**
**}**
### UI脚本:
**\[SerializeField\]public UI_ItemTip tip;//获取提示框**
### UI_ItemSlot脚本:
实现IPointerEnterHandler,IPointerExitHandler接口
分别会在鼠标悬浮在物品槽和离开物品槽时调用
**public UI ui;//获取ui**
**private void Start()
{
ui=GetComponentInParent\
SerializeField\] private string statDescription;//该槽位对应的文本描述,自行设置** **private UI ui;** **public void OnPointerEnter(PointerEventData eventData)//调用即可 { ui.statTip.ShowStatToolTip(statDescription); }** **public void OnPointerExit(PointerEventData eventData) { ui.statTip.HideStatToolTip(); }**  ## 3.实现键盘切换UI: ### UI脚本: **\[SerializeField\] private GameObject Character;//获取四大面板 \[SerializeField\] private GameObject Craft; \[SerializeField\] private GameObject SkillTree; \[SerializeField\] private GameObject Options;** **void Start()//初始化默认不打开面板和提示框 { SwithTo(null);** **ItemTip.gameObject.SetActive(false); statTip.gameObject.SetActive(false); }** **public void SwithWithKey(GameObject _menu) { if(_menu!=null\&\&_menu.activeSelf)//再次按下同样的按键则关闭面板 { _menu.SetActive(false); return; }** **SwithTo(_menu);** **}** **void Update() { if(Input.GetKeyDown(KeyCode.C))//四个面板以及对应的按键 { SwithWithKey(Character); } if(Input .GetKeyDown(KeyCode.B)) { SwithWithKey(Craft); } if(Input.GetKeyDown(KeyCode.K)) { SwithWithKey(SkillTree); } if(Input.GetKeyDown(KeyCode.O)) { SwithWithKey(Options); } }**