添加物品到背包(记录学习)

Unity游戏开发:背包系统的实现 背包是游戏中经常使用的一个组件,它负责管理玩家在游戏中所获得的道具。一个完整的背包系统应当具有将物品放置进背包、对背包内物品进行管理和使用背包内物品等功能。而往往一个背包系统的逻辑关系较为复杂,如果把所有功能都放在一个脚本中实现会使代码显得十分冗杂且缺乏逻辑。所以在背包系统的设计过程中,我们常将其分解为数据、逻辑和UI三部分分别来进行完成。...... 阅读详情

在游戏开发过程中,游戏都有一个必不可少的东西,就是背包。

今天就来说一下怎么添加物品到背包,首先你得做好一个UI背包界面

我这里就随手搭了一个简单的,还有要记得添加这个组件哦,调节好位置

 

先在UI界面做好你需要添加的物品图片(设置好数量文本框,信息提示文本框为子物体),然后把这张图片设置为预制体添加Canvas Group组件。

好啦设置好了,就是代码段了

public class Clone : MonoBehaviour {
	private GameObject[] ge;//背包格子
	public GameObject[] gameObjects1;//3个预制体								
	void Start()
	{
		ge = GameObject.FindGameObjectsWithTag("bk");//把背包格子存进数组
	}
	
	void Update()
	{
		if (Input.GetKeyDown(KeyCode.F))
		{
            Cloness();
        }
	}
	void Cloness()
	{
        bool bo = true;
        int a = Random.Range(0, gameObjects1.Length);//在3个预制体中随机克隆一个
        GameObject go = Instantiate(gameObjects1[a]);
        for (int i = 0; i < ge.Length; i++)
        {
            if (ge[i].transform.childCount > 0 && go.name.Equals(ge[i].transform.GetChild(0).name))//判断格子没有子物体
            {
                bo=false;
                //相同的情况下 找到他的相对应格子的子级图片,图片的子级text文本让文本值+1
                int b = int.Parse(ge[i].transform.GetChild(0).GetChild(0).GetComponent<Text>().text);
                ge[i].transform.GetChild(0).GetChild(0).GetComponent<Text>().text = (b + 1).ToString();
            }         
        }
        if(bo)//当你克隆的对象  格子的子级没有的时候
        {
            for (int i = 0; i < ge.Length; i++)
            {
                //格子的子物体为空
                if (ge[i].transform.childCount == 0)
                {
                    //克隆它并设为格子的子级
                    go.transform.SetParent(ge[i].transform);
                    go.transform.localPosition = Vector3.zero;//位置居中
                    break;
                }
            }
        }
    }
}

 我这里只做了3个预制体  ,下面是运行结果

 这里的物品可以实现拖拽交换和图片居中,脚本在上一个博客哦;

Unity 3D 实现拾取物品功能(一) Unity 3D 实现拾取物品功能(一)刚刚接触Unity不久,为了记录自己学习的过程。我决定写写博客,哈哈哈。在网上看了一些拾取物品的实现原理之后,自己摸索了一下,写了个小Demo,下面来介绍一下基本功能。1)人物靠近物体,且视角朝向物体,改变物体颜色。 2)按E键拾取物品到背包,并销毁游戏对象。 3)按B键在背包中显示已有物品。一般背包设定分为格子上限和负重上限两种,在这个Demo里我们使用格子 阅读详情

相关推荐

背包问题之0-1背包算法详解

一、0-1背包问题描述 有5件物品和1个背包,背包最多只能装下8公斤的物品。怎样选择物品,使得背包能装下并且得到的价值最大。物品的重量和价值如下所示: 物品1: 6公斤   价值48元 物品2: 1公斤   价值7元 物品3: 5公斤   价值40元 物品4: 2公斤   价值12元 物品5: 1公斤   价值8元

WorldMvp的专栏 1万+

贝塞尔曲线动画开源项目常见问题解决方案

贝塞尔曲线动画开源项目常见问题解决方案 一、项目基础介绍和主要编程语言 本项目是一个开源的Android项目,主要实现了将商品添加到购物车时的动画效果,使用贝塞尔曲线来完成商品从一个位置移动到另一个位置的动画。该项目的核心是一个自定义的贝塞尔曲线动画控件,它能够平滑地展示商品的移动过程。项目的主要编程语言是Java。 二、新手使用项目时需要特别注意的三个问题及解决步骤 问题1:如何将项目集成到An...

gitblog_00177的博客 455

背包问题详解(含代码)

背包背包背包,动态规划啊

林一百二十八的博客 5554

贝赛尔曲线 - Vue3实现加入购物车抛物线效果组件

在前几天的一次迭代中,我遇到了这么一个需求,模仿支付宝首页应用中心的编辑功能,支持编辑首页展示的应用,在支付宝应用首页编辑功能中,我注意到一种独特而细致的设计。无论是增加还是移除某个应用,都会引发一个精美的移动动画效果。这种贴心的设计在用户体验中起到了微妙而关键的作用,使得操作更加流畅,为整个过程增添了趣味性。不由地想起我们在使用各种购物外卖软件时,添加商品到购物车也有这么一个抛物线的动画效果。因此,决定手动造轮子,封装一个通用的抛物线组件。

qq_34185872的博客 1001

Unity2021 Inventory(背包)系统学习记录

Unity2021 Inventory(背包)系统学习记录 最近学习了Unity背包系统设计的基本设计。学习资料主要参考了B站up主:M_Studio的教学视频。学习完后,在Assets Store上重新下载了一套GUI对学习到的知识进行了一次复盘。现在,对复盘的过程进行一次记录。这个背包系统主要实现了基本的背包功能,Player(玩家)在场景中拾取得到物品,然后物品能够在背包上出现,背包中的物品也能够进行移动以及交换位置。 ​ 使用的资源都是在Asset Store上下载得到的免费资源,本次使用的UI主要

weixin_39805744的博客 3429

UE4-创建一个背包系统

内容: 1.UMG显示背包内容 2.背包内容数据存放在PlayerState中 3.当玩家拾取物品的时候,动态修改背包数据:(UMG也要动态修改背包内容) 如果背包中已经有这个物品,则物品数量+1 如果背包中没有这个物品,则增加这个物品的类 4.物品的信息存放有:物品名称、物品的图标、物品的Mesh、物品的数量 5.当丢弃物品的时候,物品数量-1,并把物品丢弃在身边 6.双击物品,打开详情图(添加一个新的UMG) 制作: 1.构建存储物品信息...

goodriver1的博客 6076

cocos课堂(三)--UI控件系统(背包)

常用ui组件

qq_54350870的博客 1177

《统计学习方法》——李航 学习大纲

最近在学习李航写的统计学习方法概论, 每一章都用xmind理清了思路,括号里是书里的公式,第一次写博文,敬请指教~~~~ 第一章 统计学习方法论 第二章 感知机 每个方法其实只需要着重掌握三要素和输入输出就可以了,主要看模型、策略和算法。 感知机主要是二类分类的线性分类模型。 看到后面会注意感知机和支持向量机的区别。 第三章 k近

wjy619251334的博客 1万+

2022年小游戏----游戏背包系统之自定义填充背包和切换背包页面

文章目录蓝图展示UI_Main_Bag蓝图UI_Main_Bag_Item蓝图创建数据结构和数据表创建数据结构引用结构创建数据表编辑UI_Main_Bag_Item图表使用标签获取数据表数据将提取得到数据进行结构分解将结构体中的贴图刷到图片上图表总览编辑UI_Main_Bag图表创建背包页面加载函数设置背包页面数据设置点击按钮如何切换页面将上述功能绑定到事件构造总览运行 上一篇文章中,我们使用Item填充了背包,今天这篇文章,主要是学习了如何根据自己的需求,将道具添加至背包内,并可以通过按钮进行不同背包界面

ZeroSwift的博客 4113

LC与RC滤波电路实战对比:从原理到选型指南

本文深入对比了LC与RC滤波电路的核心原理与实战应用。LC滤波利用电感与电容的无损能量搬运,适合高频、大电流电源滤波,效率高但需注意谐振风险;RC滤波通过电阻消耗能量实现滤波,结构简单、成本低,适用于低频信号处理或小电流供电场景。文章提供了从工作原理、性能维度到具体选型的完整指南,帮助工程师根据项目需求(如频率范围、负载电流、效率)做出精准选择。

weixin_29240711的博客 499

VINS-Mono 时延估计论文翻译

Online Temporal Calibration for Monocular Visual-Inertial Systems 摘要 精确的状态估计是机器人导航、自主驾驶、虚拟现实和增强现实等各种智能应用的基础模块。视觉惯性融合是近年来流行的六自由度状态估计技术。记录不同传感器测量值的时刻对系统的鲁棒性和准确性至关重要。在实践中,每个传感器的时间戳通常会受到触发和传输延迟的影响,从而导致不同传感器之间的时间偏差(时间偏移)。这种时间偏移严重影响传感器融合的性能。为此,我们提出了一种标定视觉和

weixin_39061796的博客 1255

学习游制作记录(背包UI以及各种物品的存储)8.12

创建一个画布,在画布下再建一个图像UI,在图像UI下创建一个文本UI,设置文本在图像的右下角,且偏右显示。

2503_90719681的博客 1056

用PyTorch和snnTorch库5分钟搞定一个脉冲神经网络(SNN)手写数字识别Demo

本文详细介绍了如何使用PyTorch和snnTorch库快速搭建一个脉冲神经网络(SNN)手写数字识别Demo。通过模拟生物神经元的脉冲发放机制,SNN在低功耗场景中展现出独特优势。文章涵盖环境配置、数据预处理、模型构建、训练评估全流程,并提供了性能优化技巧和常见问题解决方案,帮助开发者在5分钟内实现高效的SNN应用。

weixin_29300931的博客 393

背包九讲——背包问题求方案数

背包问题涉及到了三种基础的背包:01背包、多重背包、完全背包,我们要根据在这几个背包的基础上去计算在获得最大价值的情况下,有几种方案,并输出方案数。

闻道有先后,术业有专攻 2762

SAP物料分类账(ML)避坑指南:激活顺序错了怎么办?从CKMSTART到差异分摊的完整流程

本文详细解析SAP物料分类账(ML)的正确激活顺序与配置流程,帮助用户避免常见陷阱如'LKW无科目'、'在制品重估失败'等问题。从CKMSTART到差异分摊的完整流程,涵盖关键配置节点、典型报错分析与应急处理方案,确保产品成本控制(CO-PC)模块的顺利运行。

weixin_42524708的博客 258

《UDS协议从入门到精通》系列——图解0x85:控制DTC的设置

如何让ECU停止或恢复DTC状态位更新?有哪些注意点?图解+示例教你快速上手UDS 0x85服务!!

车载系统攻城狮 3864

UE背包与快捷物品栏之间进行物品交换

实现背包与快捷栏之间的物品交换功能

qq_56586293的博客 1045

【Zephyr存储专题】09_LittleFs文件系统操作

本文档旨在为开发者介绍Zephyr下Littlef's文件系统相关配置使用指南

zero的博客 3246

算法分析:0-1背包问题给定n种物品和1个背包,物品i的重量是wi,其价值为vi,背包的容量为C。选择装入背包的物品,使得装入背包中物品的总价值最大。例如5个物品wi[] = { 5,2,3,6,3}

一、效果图 vi[]={5,5,6,9,8},背包的容量为10 二、源代码 #include<iostream> #include<stdio.h> //#include <conio.h> usingnamespacestd; intn;//物品数量 doublec;//背包容量 doublev[100];//各个物品的价值 value doublew[100];//各个物品的重量 weight doub...

Name Yan 1万+

【PCIe 总线及设备入门学习专栏 6.2 -- PCIe VDM (Vendor Defined Messages)】

在PCIe协议中,Vendor Defined Messages (VDMs) 是一种允许厂商定义和传输特定功能的消息类型。这种机制扩展了标准 PCIe 消息的功能,可以用于实现供应商自定义的功能,例如固件更新、设备配置和诊断信息传输。PCIe VDM 是通过实现的,它遵循 PCIe 协议栈的结构,包括事务层、数据链路层和物理层。

CodingCos的博客 1898

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Unity3D背包系统制作 第01篇 物品数据

一、编辑背包物品的数据类 一般来说,背包中的物品有编号,物品名字,物品的描述,背包格子容量(也就是一个背包格子中最多可以放几个这种物品),物品的品质(普通,稀有,传说什么的),物品的类型(道具,装备,任务用品,材料等等),物品价格,至于物品的图片如何显示在格子中,有两种加载图片的方式,一个是直接加载2D图片,另一个根据Unity中Resources文件夹的功能,将图片放在Resources文件夹...

黑暗灵魂的博客 6235

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

J 小梁的背包(01背包,记录所选物品数量)

题目传送门 题意: 给你一个容量为s的背包,n个物品,每个物品有自己的价值和体积,求背包所能容纳的物品的最大价值,并求出此时背包中物品数量。 思路: 求最大价值并不难,直接模板就行了,然后输出数量的话,我们看价值的转移方程:dp[j]=max(dp[j],dp[j-w[i]]+v[i]); 对于第i件物品,选或者不选,如果选了,那么我们可以cnt[j]=cnt[j-w[i]]+1; 表示容量为j的背包比容量为j-w[i]的背包多了一件物品,最后输出dp[s]和cnt[s]就行了。 #include<b

Joker_He的博客 491

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

完全背包问题并记录选择物品和个数(python实现)

完全背包问题并记录选择物品和个数(python实现) 现有n种物品(每种物品有任意多个),每个物品的重量为w,对应的价值是v。同时有一背包总载重为W,对于这个背包挑选那几样物品可使其价值总和最大。 在01背包问题中,每种物品只有选择和不选择两种,而在完全背包问题中,每种物品的选择就有很多种,即0,1,…⌊W/wi⌋\left\lfloor{W}/{w_i}\right\rfloor⌊W/wi​⌋种。由01背包问题可只递推关系如下: dp[i][j]dp\left[i\right]\left[j\right

kongzhifei的博客 4531

unity背包系统完整版

背包系统分三个层次 背包整体——背包网格——背包物品,其中物品是用代码实例化出来的。 目录 背包类 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Bag : MonoBehaviour { ...

qq_41871270的博客 6457

背包系统学习笔记

1.记得调好canvas的缩放比例右边的图片是指锚点跟随本身物体分布,按alt则变成左边的随父物体的ui分布。+alt =2.topCenter的menus需要添加两个组件,记得设置好居中对齐和自适应宽度3.这是菜单目录,其中icon1和icon2是用来按住这个菜单时显示不同的图片。select则是一个黄条,表示该菜单被选中。4.滚动容器放在center里,content里是很多背包格子。,这个stars被做成了预制体,用来展示星级的。,这个属性用来设置滚动条永久可见。

Pepper_Chanter的博客 1868

背包二(求解最大价值时背包的物品)

一:问题 01背包问题描述:一个容量为V的背包。现在有N种物品,每种只有一个物品,每种物品的体积是C1,C2,…,Cn,对应的每种的价值是W1,W2,…,Wn.。试问,在不超过背包容量的情况下,物品装入背包的最大价值? 经过第一篇的学习,我们学会求解最大价值,而此篇是在求出最大价值的同时,也要求出背包内有哪么物品?这是一个记录路径问题。 二:分析理解 我们设置一个path[][]二维数组记录路径。...

Yan 小铁匠 715
上一篇: unity背包拖拽功能
下一篇: 序列化与反序列化,JSON数据的写入和读取
Optimistic_lx
博客等级 码龄4年 34粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值