12901人加入学习
(90人评价)
Unity2D 中级案例-甜品消消乐(Unity2017.2)

制作于2018年1月6日

价格 免费

创建一个游戏管理类

通过枚举定义甜品种类

通过字典将甜品的种类和物体(预制体)保存起来

如何将字典显示在unity的监视面板中

解决方案:通过结构体,在结构体中定义两个属性:type,prefab;

结构体的使用需要添加一个属性:[System.Serializable] 可序列化,定义一个结构体类型的二维数组,用来保存许多类型的甜品预制体。

如何将数组中的结构体

 

 

 

了解序列化和反序列化

 

在枚举中有行消除、列消除、标记类型

[展开全文]

定义水果类型用枚举的方法

用结构体对致电3进行添加

[展开全文]

public struct SweetPrefab { public SweetType type; public GameObject prefab; int num; private int x; }

//标记为public的字段才会显示在Inpector面板中

[展开全文]

甜品的类型枚举,结构体,字典的创建

 

(1)枚举类型。

// 棋子的种类
    public enum ChessType
    {
        EMPTY,              // 空
        NORMAL,             // 一般类型
        BARRIER,            // 障碍
        ROW_CLEAR,          // 行消除
        COLUMN_CLEAR,       // 列消除
        RAINBOWCHESS,       // 彩虹
        COUNT               // 标记类型
    }

(2)预制体字典。

// 棋子预制体的字典,我们可以通过棋子的种类来得到对应的棋子游戏物体
    public Dictionary<ChessType, GameObject> chessPrefabDict;

(3)定义结构体使其显示在unity的inspector面板中。

// 结构体可序列化,可在unity中自由修改
    [System.Serializable]
    public struct ChessPrefab
    {
        public ChessType type;
        public GameObject prefab;
    }

(4)结构体数组,存储所有棋子的类型,使其显示在unity的inspector面板中,可以进行修改。

// 结构体数组,
    public ChessPrefab[] chessPrefabs;

(5)预制体字典的实例化。将结构体中的值赋给字典。

在Start方法中。

// 字典的实例化
        chessPrefabDict = new Dictionary<ChessType, GameObject>();
        for (int i = 0; i < chessPrefabs.Length; i++)
        {
            if (!chessPrefabDict.ContainsKey(chessPrefabs[i].type))
            {
                // 传入键值
                chessPrefabDict.Add(chessPrefabs[i].type, chessPrefabs[i].prefab);
            }
        }

 

[展开全文]

甜品的类型枚举,结构体,字典的创建

[展开全文]

需要创建一个数据字典(<甜品的类型,甜品的预制体>)来存储甜品的类型以及对应类型的游戏物体。

可以手动给字典赋值的实现方式:

因为字典无法显示简式界面,因此需要创建一个结构体数组,手动给结构体数组赋值,再将结构体数组的值赋给字典。

 

[展开全文]

授课教师

SiKi学院老师

课程特色

图文(1)
下载资料(1)
视频(49)