AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAA
结构体 struct+特性[System.Serializable]
定义水果类型用枚举的方法
用结构体对致电3进行添加
甜品的类型枚举,结构体,字典的创建
(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);
}
}
需要创建一个数据字典(<甜品的类型,甜品的预制体>)来存储甜品的类型以及对应类型的游戏物体。
可以手动给字典赋值的实现方式:
因为字典无法显示简式界面,因此需要创建一个结构体数组,手动给结构体数组赋值,再将结构体数组的值赋给字典。
创建一个游戏管理类
通过枚举定义甜品种类
通过字典将甜品的种类和物体(预制体)保存起来
如何将字典显示在unity的监视面板中
解决方案:通过结构体,在结构体中定义两个属性:type,prefab;
结构体的使用需要添加一个属性:[System.Serializable] 可序列化,定义一个结构体类型的二维数组,用来保存许多类型的甜品预制体。
如何将数组中的结构体
了解序列化和反序列化
在枚举中有行消除、列消除、标记类型
甜品的类型枚举,结构体,字典的创建
5:00 利用结构体 来初始化字典
public struct SweetPrefab { public SweetType type; public GameObject prefab; int num; private int x; }
//标记为public的字段才会显示在Inpector面板中