以血包为例

一创建血包

1.1 新建动画
  1. 导入 血包 Sprite
  2. 打开 Sprite Editor -> 切片 -> 32x32
  3. 创建 空游戏对象
  4. 创建血包 AnimatorAnimationController: 拖动 血包序列图空游戏对象
1.2 设置图层及标签
  1. 新建并应用 CanBePickedUp 标签: 代表可被捡起物品
  2. 新建并应用 Props 图层:用于碰撞检测

    1.3 添加碰撞体
  3. 血包游戏对象 添加 Circle Collider 2D 圆形碰撞体
  4. 编辑 -> 项目设置 -> 2D物理 -> 图层碰撞矩阵 : 取消勾选 EnemyProps 交叉点,使敌人不可以与之发生碰撞

二 创建道具脚本

[!NOTE] ScriptableObject 脚本表格对象: 数据储存表。
  1. 新建 PropScriptable ScriptableObject 脚本表格对象

    using UnityEngine;
    
    [CreateAssetMenu(menuName = "Prop")] // 在Unity编辑器中添加新创建菜单
    public class PropScriptable : ScriptableObject
    {
    public string propName; // 名称
    public Sprite sprite; // 默认静态图像
    public int quantity; // 值
    public bool stackable; // 是否可堆叠
    public enum PropType // 枚举 item 类型
    {
    Coin,
    Health
    }
    public PropType propType; // 类型
    }
  2. 新建 Prop 道具控制器

    using UnityEngine;
      
    public class Prop : MonoBehaviour
    {
    public PropScriptable propScriptable;
    }
  3. 新建 Heart 血包:Unity -> 创建 -> Prop 重命名 Heart
  4. 设置 Heart 相应属性

    三挂载脚本

  5. 挂载 Prop血包游戏对象
  6. 拖动 Heart血包预制件 -> 检查器 -> Prop -> propScriptable

四 创建预制件

  1. 拖动 游戏对象 到目录创建 预制件
  2. 删除 原游戏对象

五拖动预制件到场景