前言
本文基于MVC模式,用UGUI初步实现了背包系统。
Control层包含了点击和拖拽两种逻辑。
博文首发:http://blog.csdn.net/duzixi
下载地址:https://github.com/duzixi/InventorySystem
一、工程准备(详见工程文件)
场景中Canvas上的对象:
- Bag:用于显示背包内容
- PickedItem:用于显示拾取道具的图片
资源中的预设体:
- Item:生成背包的格子
二、源代码
Model 层
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
/// <summary>
/// 脚本功能:MVC模式——Model层,定义物品结构,保存物品数据
/// 添加对象:Bag 背包(Canvas下的空对象)
/// 版权声明:Copyright (c) 2015 duzixi.com All Rights Reserved
/// 创建日期:2015.5.8
/// 知识要点:
/// 1. MVC
/// 2. 自定义类
/// 3. 类的嵌套
/// </summary>
public class ItemModel : MonoBehaviour {
// 物品类的定义
public class Item
{
public string name; // 物品名称
public Sprite img; // 物品图片
// 构造器
public Item(string name, Sprite img) {
this.name = name;
this.img = img;
}
}
public static List<Item> items; // 保存物品对象的集合
// 物品图片数组
public int size = 16;
Sprite[] sprites;
void Awake() // 数据初始化
{
items = new List<Item>(); // 初始化List<Item>
sprites = new Sprite[size];