# Hello Inventory System
> Unity 实现的背包系统。
## TEST
1. 点击底部 **TEST** 按钮随机生成物品到 `Chest` ;
2. 点击物品可以将其 “**拿起**” ,按住键盘左侧的 <kbd>Ctrl</kbd> 键可以按**半数**拿起和放下;
3. 属于装备的物品可以点击**右键装备**上,显示在人物装备属性面板,相应地在人物装备面板**右键**可**卸下**装备;
4. 商店的物品点击**右键**可以**购买**(*钱足够的话*),左键点击商店的任一物品槽可**卖出**手上的物品,按住键盘左侧的 <kbd>Ctrl</kbd> 键可以**单个**出售;
5. *鼠标放在物品上有跟随鼠标的提示框显示其信息*。
## 实现
- `Item` 作为各种物品的**父类**,定义物品的各种属性,提供 `ToolTip` 的内容。
- `Inventory` 作为背包、箱子、商店等各种放置物品槽的 Panel 的**父类**,背包箱子都只需要实现单例,其他则需要实现特定行为如*购买物品* 、*出售物品* 等。背包与箱子的功能和实现都一致,所以只做了箱子(`Chest`)。
- `InventoryManager` 拥有单例,负责加载所有 `Item` ,也负责鼠标所 “**拿着**” 的物品和提示框(`ToolTip`)的显示。
- `Slot` *has* `ItemUI` *has* `Item` ,`Slot` 中进行**点击**与**hover**事件的处理。`Slot` 还要作为 `EquipmentSlot` 和 `VendorSlot` 的父类,拓展之后才能实现**商店** *购买*、*出售* 的功能以及**人物装备面板**对装备槽只能放置特定物品的要求。
### 遇到的问题
#### 人物属性更新问题
人物装备面板 `CharacterPanel` 的装备**取下**时人物属性数据不更新,教程源码中的运行结果也是如此。
![人物属性更新延迟](README/人物属性更新延迟.gif)
后来在 `CharacterPanel` 中更新属性值的函数 `UpdateProperty()` 中加入 `Debug.log(slot.gameObject.name)` 输出当前面板所有存在的装备名,运行时发现卸下装备调用 `UpdateProperty()` 函数时的现有装备仍是卸下之前的,即更新的仍是**旧的装备状态**。
`Slot` 中判断是否有物体的函数 `HasItem()` 是通过检查 `Slot` 游戏物体是否有子物体来判断的,但是卸下装备的 `Destroy()` 是**有延迟**的,是在下一个 `Update()` 之前调用(此次 `Update()` 最后)。
将 ` Destroy()` 替换成 **`DestroyImmediate`** 应该就可以了,但是当时不知道可以用 `DestroyImmediate` ,在 `Slot` 中加入了一个 `bool hasItem` ,记录自身是否有 `Item` ,销毁时使用 `DestroyItemUI()`,及时将状态置位 `false` ,保证更新属性时检查到的都是及时的装备信息。
![人物属性更新修复后](README/人物属性更新修复后.gif)
## UML图
![UML图](README/UML.png)
![UML-Inventory](README/UML-Inventory.png)
![UML-Slot](README/UML-Slot.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Unity 背包系统设计与实现高分项目.zip个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审
资源推荐
资源详情
资源评论
收起资源包目录
基于Unity 背包系统设计与实现高分项目.zip (190个子文件)
ProjectSettings.asset 18KB
InputManager.asset 6KB
QualitySettings.asset 5KB
GraphicsSettings.asset 2KB
Physics2DSettings.asset 1KB
NavMeshAreas.asset 1KB
DynamicsManager.asset 1KB
UnityConnectSettings.asset 887B
PresetManager.asset 824B
EditorSettings.asset 643B
TagManager.asset 435B
AudioManager.asset 377B
VFXManager.asset 284B
TimeManager.asset 204B
EditorBuildSettings.asset 168B
NetworkManager.asset 159B
ClusterInputManager.asset 120B
config 313B
InventoryManager.cs 5KB
Slot.cs 4KB
Inventory.cs 3KB
EquipmentSlot.cs 3KB
Equipment.cs 2KB
CharacterPanel.cs 2KB
ItemUI.cs 2KB
ToolTip.cs 1KB
Vendor.cs 1KB
Weapon.cs 1KB
Item.cs 1KB
Test.cs 962B
Player.cs 716B
VendorSlot.cs 714B
Consumable.cs 612B
Material.cs 339B
Chest.cs 292B
description 73B
LitJson.dll 55KB
背包系统UML图.drawio 6KB
exclude 240B
人物属性更新延迟.gif 595KB
人物属性更新修复后.gif 278KB
.gitignore 488B
HEAD 179B
HEAD 179B
HEAD 32B
HEAD 23B
pack-d2b598f66e3bffe748300710200411a26a35a0f4.idx 7KB
index 17KB
Items.Json 6KB
manifest.json 2KB
Packages-Update.log 1KB
master 179B
master 41B
README.md 3KB
button_long.png.meta 1KB
apple.png.meta 1KB
panel.png.meta 1KB
button_square.png.meta 1KB
steel_gloves.png.meta 1KB
the_great_stick.png.meta 1KB
steel_sword.png.meta 1KB
iron_gloves.png.meta 1KB
heavy_steel_gloves.png.meta 1KB
f.PNG.meta 1KB
rings.PNG.meta 1KB
shield.png.meta 1KB
coins.png.meta 1KB
cloaks.PNG.meta 1KB
bag.png.meta 1KB
necklace.PNG.meta 1KB
hp.png.meta 1KB
b_t_01.png.meta 1KB
mp.png.meta 1KB
scroll.png.meta 1KB
sword.png.meta 1KB
shoulders.png.meta 1KB
gem.png.meta 1KB
belts.png.meta 1KB
pants.png.meta 1KB
gloves.PNG.meta 1KB
axe.png.meta 1KB
bracers.PNG.meta 1KB
armor.png.meta 1KB
boots.png.meta 1KB
Meat.png.meta 1KB
book.PNG.meta 1KB
helmets.png.meta 1KB
ingots.png.meta 1KB
LitJson.dll.meta 653B
InventoryManager.cs.meta 254B
Test.cs.meta 254B
Material.cs.meta 254B
Weapon.cs.meta 254B
Equipment.cs.meta 254B
Item.cs.meta 254B
Consumable.cs.meta 254B
ItemUI.cs.meta 254B
ToolTip.cs.meta 254B
Player.cs.meta 254B
CharacterPanel.cs.meta 254B
共 190 条
- 1
- 2
资源评论
墨痕_777
- 粉丝: 4203
- 资源: 772
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java、Vue、JavaScript、CSS、HTML的毕设设计源码
- 基于Java和HTML的CMS看点咨询系统设计源码
- 基于Java语言的MyCache缓存系统设计源码实现教程
- 招聘信息:平面设计师(文创产品方向).pages
- vo_ai_name_blank_40.wav
- 基于HTML、JavaScript、CSS的楼盘系统移动端前端设计源码
- 基于Java及Vue框架的中职院校技能大赛教学能力比赛报名评审平台设计源码
- 基于Java语言的panghu收支统计网站后端设计源码
- 基于Python的网易云音乐API接口设计与实现源码
- 基于Java语言的CustomRelationshipManagement汇客CRM设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功