网站首页布局设计代码,深圳住房和城乡建设厅官网,外贸运输流程,营销网站建设培训学校1、目标
道具是游戏的核心部分#xff0c;道具包括你可以拾取的东西#xff0c;你可以使用的工具和你能种的东西等。
本节就是创建道具的信息类。同时了解ScriptableObject类的使用。
2、创建道具枚举类
修改Assets - Scripts - Enums.cs脚本#xff0c;
新增如…1、目标
道具是游戏的核心部分道具包括你可以拾取的东西你可以使用的工具和你能种的东西等。
本节就是创建道具的信息类。同时了解ScriptableObject类的使用。
2、创建道具枚举类
修改Assets - Scripts - Enums.cs脚本
新增如下内容
public enum ItemType
{Seed, // 种子Commodity, // 商品Watering_tool, // 浇水工具Hoeing_tool, // 锄头Chopping_tool, // 砍伐工具Breaking_tool, // 破碎工具Reaping_tool, // 收割工具Collecting_tool, // 收集工具Reapable_scenary, // 可达到场景Furniture, // 家具none,count // 计数记录列表中东西的个数
}
整个Enums.cs脚本如下
public enum ToolEffect
{none, watering
}public enum Direction
{up,down,left,right,none
}public enum ItemType
{Seed, // 种子Commodity, // 商品Watering_tool, // 浇水工具Hoeing_tool, // 锄头Chopping_tool, // 砍伐工具Breaking_tool, // 破碎工具Reaping_tool, // 收割工具Collecting_tool, // 收集工具Reapable_scenary, // 可达到场景Furniture, // 家具none,count // 计数记录列表中东西的个数
}
3、创建道具详情类
在Assets - Scripts - Item下新增ItemDetails.cs脚本。 using UnityEngine;[System.Serializable]
public class ItemDetails
{public int itemCode;public ItemType itemType;public string itemDescription;public Sprite itemSprite;public string itemLongDescription;public short itemUseGridRadius;public float itemUseRadius;public bool isStartingItem;public bool canBePickedUp;public bool canBeDropped;public bool canBeEaten;public bool canBeCarried;
}[System.Serializable]使用[System.Serializable]属性标记的类其实例可以在Unity编辑器中进行可视化编辑被序列化和反序列化便于数据保存和读取。itemUseGridRadius比如一定距离的树木被砍伐一定距离的物品可以被拾取用整个属性来确定这个物品的有效网格距离。itemUseRadius如果不是基于网格的物品比如环境中的草等是基于距离的使用当前属性。
4、创建道具列表类
1创建SO_ItemList脚本
在Scripts - Item下创建SO_ItemList脚本。
using System.Collections.Generic;
using UnityEngine;[CreateAssetMenu(fileName so_ItemList, menuName Scriptable Objects/Item/Item List)]
public class SO_ItemList : ScriptableObject
{[SerializeField]public ListItemDetails itemDetails;
}
2ScriptableObject说明
ScriptableObject是什么
Unity提供的一个数据配置存储基类它可以用来保存大量数据得数据容器是一个类似MonoBehaviour的基类要想使用它需要写个脚本去继承ScriptableObject。继承自ScriptableObject的脚本无法挂载到游戏物体上因为它不是继承自MonoBehaviour。ScriptableObject类的实例会被保存成资源文件.asset文件和预设体、材质球、音频文件等类似都是一种资源文件存放在Assets文件夹下。
作用是什么
编辑模式下数据持久化配置文件配置游戏中的数据数据复用多个对象公用一套数据不用clone数据
使用方法参考示例如下
[CreateAssetMenu(fileName BulletData, menuName ScriptableObject/子弹数据, order 0)]
public class BulletData : ScriptableObject
{public float speed;public float damage;
}fileName: 表示数据资源文件创建出来的文件名
menuName表示在Assets / Create 下的名字
order表示在Assets / Create 下的位置顺序
3创建ScriptableObject实例
在Assets目录下创建如下目录结构 在Assets - Scriptable Object Assets - Item下右击创建so_ItemList对象列表。 创建24个实例。 24个Element罗列如下 From small acorns do large oak trees grow.One day this humble acorn could be a towering giant! A juicy,fat,ripe pumpkin.It makes great soup as well as a scary Halloween face! Juicy fresh corn - try it roasted on a BBQ smothered with butter and a health conscious sprinkling of salt and pepper!