介绍
作为一个物品管理,这里提供的方法是:先创建一个.txt文档用来储存所有物品信息。所以当我们要进行管理时候第一步也将是获取到这个文档(用TextAsset类),之后读取并做相关操作。在这里我假设我们的物品有:
1. 创建.txt文本文档,用来存储所有物品信息
注意:
(1)这里的文本文档的编码格式要为UTF-8,否则u3d读取不到内容。设置方法为——文件->另存为->编码
![最下面一行有编码选择](https://img-blog.csdn.net/20171105202240491?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTNkXzIwMTcxMDMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2. 我在文本文档里面写入了这三条信息:
每一行代表一件物品,这里我只写了药水的。每一行的第一列(以逗号来分列,注意这里的逗号是英文格式的逗号)
(1)在第一行中,第一列为物品的id,为什么是1001呢?在这里我将物品中的药品id全部设置为一零零几的。
(2)下一列为物品名称,将会显示在游戏中。
(3)第三列为图片名称,这里的图片名称必须是asset里面存在的图片的名称,用这个名称可以找到相应的图片,显示在游戏中。
(4)第四列为物品的类型,在第一幅图中我给不同的类型准备了相应的名称,顾名思义Drug是药品类
(5)回复hp的值,就是可以回复多少的hp
(6)回复mp的值
(7)出售价格
(8)购买价格
3. 在脚本中获取文本
在u3d中可以直接将txt文本文件拖入
//获取物理txt文件
public TextAsset objectsInfoListText;
4. 创建储存物品相关信息的类
由于物品具有不同的类型,不同类型的物品又有不同的属性,比如药品就有回复血量的属性,而装备没有,所以创建以下类,来暂存不同的物品,之所以说是暂存,是因为最终我们要将要品存在字典中,后面会讲到……
//定义一个枚举类型来存储物品的类型名称
public enum ObjectType
{
Drug,//药品
Equip,//装备
Mat//材料
}
//表示所有物品共有的信息
public class ObjectInfo
{
public ObjectType type;
public int id;
public string name;
public string icon_name;
public int price_sell;
public int price_buy;
}