前言
欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中,我们将探索如何制作一个类似于七日杀和森林的生存游戏。
本篇内容会比较多,我会分几篇来实现,感兴趣的可以关注一下,以免错过内容更新。
本节主要实现了显示物品详细信息的功能。
显示物品详细信息
绘制UI
代码控制物品详细信息
修改InventorySystem
public GameObject ItemInfoUI;
配置变量绑定物品详情UI
新增InventoryItem代码,实现鼠标进入显示物品详细信息,退出隐藏物品信息
using TMPro; using UnityEngine; using UnityEngine.EventSystems; public class InventoryItem : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { [Header("物品名称")] public string thisName; [Header("物品描述"), TextArea] public string thisDescription; [Header("物品功能")] public string thisFunctionality; private GameObject itemInfoUI;//物品详情UI private TextMeshProUGUI itemInfoUI_itemName; private TextMeshProUGUI itemInfoUI_itemDescription; private TextMeshProUGUI itemInfoUI_itemFunctionality; private GameObject itemPendingConsumption;//待销毁的物品对象 private void Start() { itemInfoUI = InventorySystem.Instance.ItemInfoUI; // 获取物品信息UI对象 itemInfoUI_itemName = itemInfoUI.transform.Find("Name").GetComponent<TextMeshProUGUI>(); // 获取物品名称UI对象 itemInfoUI_itemDescription = itemInfoUI.transform.Find("Introduction").GetComponent<TextMeshProUGUI>(); // 获取物品描述UI对象 itemInfoUI_itemFunctionality = itemInfoUI.transform.Find("Function").GetComponent<TextMeshProUGUI>(); // 获取物品功能UI对象 } // 当鼠标进入物品区域时触发 public void OnPointerEnter(PointerEventData eventData) { itemInfoUI.SetActive(true); // 显示物品信息UI itemInfoUI_itemName.text = thisName; // 设置物品名称显示 itemInfoUI_itemDescription.text = thisDescription; // 设置物品描述显示 itemInfoUI_itemFunctionality.text = thisFunctionality; // 设置物品功能显示 } // 当鼠标离开物品区域时触发 public void OnPointerExit(PointerEventData eventData) { itemInfoUI.SetActive(false); // 隐藏物品信息UI } }
挂载脚本,配置数据
效果
源码
源码不出意外的话我会放在最后一节