本节最终效果演示
文章目录
- 本节最终效果演示
- 系列目录
- 前言
- 修改鼠标光标和中心提示图
- 鼠标光标素材
- 修改默认鼠标光标
- 修改中心提示图
- 拾取提示弹窗
- 简单绘制UI
- 拾取弹窗功能
- 源码
- 完结
系列目录
前言
欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中,我们将探索如何制作一个类似于七日杀和森林的生存游戏。
本篇内容会比较多,我会分几篇来实现,感兴趣的可以关注一下,以免错过内容更新。
本节主要实现了一个修改鼠标光标和中心提示图,并添加拾取提示弹窗的功能。
修改鼠标光标和中心提示图
鼠标光标素材
可以使用我准备的,也可以使用自己喜欢的
修改默认鼠标光标
效果
修改中心提示图
修改SelectionManager
public Image centerDotlmage;//中心圆点
public Image handlcon;//手图标
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // 从鼠标位置创建射线
RaycastHit hit;
if (Physics.Raycast(ray, out hit, maxDistance, layerMask)) // 检测射线是否击中物体
{
var selectionTransform = hit.transform;
if (selectionTransform.GetComponent<InteractableObject>())
{
//。。。
if(selectionTransform.GetComponent<InteractableObject>().isPickUp){
centerDotlmage.gameObject.SetActive(false);
handlcon.gameObject.SetActive(true);
}
}
}
else
{
interactionInfoUI.SetActive(false); // 鼠标未点击任何物体,隐藏交互信息UI
centerDotlmage.gameObject.SetActive(true);
handlcon.gameObject.SetActive(false);
}
}
效果
拾取提示弹窗
简单绘制UI
拾取弹窗功能
修改InventorySystem
[Header("拾取弹窗信息")]
public GameObject pickupAlert;
public TextMeshProUGUI pickupName;
public Image pickuplmage;
//添加物品
public void AddToInventory(string itemName)
{
// .。。
TriggerPickupPopUp(itemName, itemToAdd.GetComponent<Image>().sprite);
}
//拾取弹窗信息
void TriggerPickupPopUp(string itemName, Sprite itemSprite)
{
pickupAlert.SetActive(true);
pickupName.text = itemName;
pickuplmage.sprite = itemSprite;
CancelInvoke("ClosePickupAlert");
Invoke("ClosePickupAlert", 3f);
}
void ClosePickupAlert()
{
pickupAlert.SetActive(false);
}
挂载脚本,配置参数
效果
源码
源码不出意外的话我会放在最后一节
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,以便我第一时间收到反馈,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~