Notifications
Article
快速做一个简单的背包系统
Updated 2 months ago
1.7 K
15
用ScriptableObject来作为我们的数据存储,画上UI你就拥有你自己的背包啦!
现在虽然有很多的 Inventory System 的插件可以直接使用,但是如果能了解和明白背后的逻辑和代码的实现方法,就可以创建属于自己的背包系统了。也可以额外扩展很多功能。所以快来一起动手做一个吧~
所有素材均使用 Asset Store 中的免费素材哦~

这里主要介绍一个重要的知识点,我们的主角:ScriptableObject

我们创建一个代码,目的:用来作为物品的模版,存储物品的基本属性,并且创建了一个物品后要保存在我们的游戏文件夹当中,作为我们的物品数据库。
所以我们替换掉 MonoBehaviour 使用 ScriptableObject。如果你在官网的手册当中搜索 ScriptableObject 的话会看到很具体的解释,它的一个优点就是不需要挂在任何 GameObject 上才能使用。我们动手写一下就知道啦~
public class Item : ScriptableObject { public string itemName; public Sprite itemImage; public int itemHeld; [TextArea] public string itemInfo; public bool equip; }
上面的这行代码是为了创建我们的模版的基本框架,物品名称,图片,属性等等。有了这些后接下来就可以实际生成这个模版来创建我们的物品了,这时候要配合使用:[CreateAssetMenu]
using UnityEngine; [CreateAssetMenu(fileName = "New Item", menuName = "Inventory/New Item")] public class Item : ScriptableObject { public string itemName; public Sprite itemImage; public int itemHeld; [TextArea] public string itemInfo; public bool equip; }
CreateAssetMenu 可以在我们的 Unity 编辑器的邮件菜单中生成我们需要的选项,并且创建文件后的名字就是 fileName="文件名"。
上面的图片我们可以看到,这个物品没有挂载任何的 C# 脚本,但是我们可以看到之前代码里写过的变量。这样就成功创建了我们的物品数据库&物品模版了!
其实 ScriptableObject 的用法还有很多,可以用来做人物的模版,Boss的模版。各种数据存储的使用。请大家发挥你的想象来实现各种功能吧~

UI 的部分没有写出来,因为看视频更直观一些吧~感兴趣的小伙伴可以来看我的视频,地址如下:

https://www.bilibili.com/video/av76823556

感谢大家的点赞支持~如果你有任何想知道的,或者你有任何好的建议,请为我留言哦~

我是Michael~😜

Michael Wang
Trainer - Programmer
9
Comments
zjy
11 days ago
1
Lg
L gongji
a month ago
谢谢🙏
1
L
Luo
a month ago
麦sensei的视频教程是最详细,最简单明了的❤
1
l
lgcomic
a month ago
非常有用的教程。从第一个教程开始看的。
1
青丘老狐
a month ago
关注,收藏,点赞
1