【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱12(附带项目源码)
效果演示
系列目录
前言
欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第25篇中,我们将探索如何用unity制作一个3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱等功能,我会附带项目源码,以便你更好理解它。
悬停显示物品详情
绘制详情UI
修改Slot,具体悬浮窗什么偏移参数合适,就自己按具体情况配置了
// 当鼠标指针进入槽位区域时调用
public void OnPointerEnter(PointerEventData pointerEventData)
{
hovered = true;
if (heldItem != null) // 如果槽位中有物品
{
Transform itemHoverInformation = Inventory.Instance.itemHoverInformation;
// 计算信息框的新位置
Vector3 newPos = new Vector3(transform.position.x + 150, transform.position.y + 150, 0);
itemHoverInformation.position = newPos;
// 显示信息框并更新显示的文本内容
itemHoverInformation.gameObject.SetActive(true);
itemHoverInformation.GetComponentInChildren<TMP_Text>().text = "<b><u>" + heldItem.name + " x" + heldItem.currentQuantity + "</u></b>\n" + heldItem.description;
}
}
// 当鼠标指针离开槽位区域时调用
public void OnPointerExit(PointerEventData pointerEventData)
{
hovered = false;
Transform itemHoverInformation = Inventory.Instance.itemHoverInformation;
if (itemHoverInformation != null) // 如果存在信息框
{
// 隐藏信息框
itemHoverInformation.gameObject.SetActive(false);
}
}
修改Inventory
[Header("详情信息")]
public Transform itemHoverInformation; //详情信息框
private void toggleInventory(bool enable)
{
//关闭背包时,隐藏信息框
if (!enable) itemHoverInformation.gameObject.SetActive(false);
//...
}
配置参数
效果
源码
源码不出意外的话我会放在最后一节
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,以便我第一时间收到反馈,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
原文地址:https://blog.csdn.net/qq_36303853/article/details/136072206
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!