甜品消消乐 01游戏管理的创建,巧克力背景的生成
(1)创建背景
新建2D的Sprite,将图片拖给它。调整图片大小覆盖摄像机。重命名为Background。把背景的层级设置到最下方
(2)游戏管理
控制整个游戏的运行,甜品的产生、消除等。右键Create Empty,重命名为GameManager。
然后在其身上挂一个同名的脚本。即GameManager.cs。将脚本拖到Scripts文件夹下。
(3)保存场景
Ctrl+S保存场景,命名为Game,将其拖到Scenes文件夹下。
(4)编辑脚本
双击GameManager.cs脚本,进行VS编辑。
做成单例模式。
// 单例
private static GameManager _instance; // ctr+r+e快捷键构建GET SET
public static GameManager Instance
{
get
{
return _instance;
}
set
{
_instance = value;
}
}
所有东西开始前实例化GameManager。即最先初始化。
private void Awake()
{
_instance = this;
}
定义行列数。
// 大网格的行列数
public int xColumn;
public int yRow;
然后进入unity,点击GameManager,在Inspector面板上可以设置行列数。
定义网格背景。
// 地图网格背景对象
public GameObject gridPrefab;
然后在unity的Inspector面板上将创建的Grid预制托给它。
整个地图实例化网格背景
在Start()方法中:
// 地图的实例化
for (int x = 0; x < xColumn; x++)
{
for (int y = 0; y < yRow; y++)
{
// 实例化棋子的背景(地图的实例化)
GameObject chessBg = Instantiate(gridPrefab, new Vector3(x,y,0),Quaternion.identity);
// 使chess父对象为GameManager
chessBg.transform.SetParent(transform);
}
}
棋子背景产生了,但位置不正确。
//调整背景生成位置的方法
public Vector3 CorrectPositon(int x, int y)
{
//实际需要实例化巧克力块的X位置=GameManager位置的X坐标-大网格长度的一半+行列对应的X坐标
//实际需要实例化巧克力块的Y位置=GameManager位置的Y坐标+大网格高度的一半-行列对应的Y坐标
return new Vector3(transform.position.x - xColumn / 2f + x, transform.position.y + yRow / 2f - y);
}
位置可以直接调整GameObject的位置