当前位置: 首页 > article >正文

『功能项目』QFrameWork拾取道具UGUI【69】

本章项目成果展示

我们打开上一篇68QFrameWork扔到地上UGUI的项目,

本章要做的事情是实现当物品在地上时,点击物品将对应物品转移到道具栏中

制作一个提示UI界面

添加Button组件设置为点击即将父物体隐藏

拖拽到文件夹中在场景中删除

创建脚本:CanPickupItem.cs

using QFramework;
using QFramework.Example;
using UnityEngine;
public class CanPickupItem : MonoBehaviour{
    GameObject tipItemUIPrefab;
    void Start(){
        tipItemUIPrefab = Resources.Load<GameObject>("Prefabs/Images/ItemTipUI");
    }
    void Update(){
        // 检测鼠标左键点击
        if (Input.GetMouseButtonDown(0)){
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit)){
                // 检查鼠标点击的对象是否是这个物品
                if (hit.collider.gameObject == gameObject){
                    // 调用ItemKit的AddItem方法尝试将物品添加到背包
                    if (ItemKit.AddItem(ItemKit.Item1.Key)){
                        FindAnyObjectByType<UGUICanvas>().Refresh();
                        Destroy(gameObject); // 销毁物品实例
                    }
                    else{
                        Instantiate(tipItemUIPrefab, GameObject.Find("CurrentCanvas").transform);
                    }
                }
            }
        }
    }
}

将脚本挂载至生成道具上

运行项目

本章实现创建可拾取脚本挂载在预制体道具身上,当鼠标点击即可进入道具栏的功能

接下来的文章内容:

1.QFrameWork物品交换UGUI

2.位置存储功能

3.点击名称寻找地点功能

4.隐藏怪物的生成

5.怪物I攻击范围内的主动攻击

6.掉落坐骑蛋的获取

7.异步传送转换场景

以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。

具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》

【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6


http://www.kler.cn/a/316607.html

相关文章:

  • 【LeetCode】【算法】5. 最长回文子串
  • layui.all.js:2 Uncaught Error: Syntax error, unrecognized expression
  • 【论文阅读】Virtual Compiler Is All You Need For Assembly Code Search
  • 【C++学习(37)】并发性模式:如生产者-消费者、读写锁等。 架构模式:如MVC、MVVM等。属于23 种设计模式吗? RAII 的关系?
  • 【Excel】ToRow超级查找函数
  • C++STL容器——map和set
  • 深度学习速通系列:什么是文本数据标注
  • 《SmartX ELF 虚拟化核心功能集》发布,详解 80+ 功能特性和 6 例金融实践
  • 高级大数据开发协会
  • PHP邮件发送教程:如何用PHP发送电子邮件?
  • 4.结构型设计模式 - 第1回:引言与适配器模式 (Adapter Pattern) ——设计模式入门系列
  • Vulkan 学习(8)---- vkImageView 创建
  • 关于SpringBoot项目使用maven打包由于Test引起的无法正常打包问题解决
  • 亲测好用,ChatGPT 3.5/4.0新手使用手册~
  • 振弦式渗压计常见故障有哪些?怎么解决?
  • 探秘淘宝商品详情原数据:主图与数据的神秘获取之旅
  • 盲盒扭蛋机系统开发源码部署
  • LeetCode 滑动窗口 每个字符最多出现两次的最长子字符串
  • 中小微企业生产管理利器-- 超轻量生产工单系统
  • 微信支付开发-后台统计工厂实现
  • 优化SQL查询的常见方法
  • FPGA随记——VIVADO中ASYNC_REG指令
  • 解决Echarts:宽度100%,渲染的宽度却是100px
  • Vue3快速入门+axios的异步请求(基础使用)
  • 基于SpringBoot的旅游网站系统
  • 硬盘数据能否自己在家恢复?探索数据恢复的可行性与方法