Instantiate(gamebg,newVector3(i,j,0),Quaternion.identity);可以基于一个已有的预制体(Prefab)或场景中的现有游戏对象创建出一个新的实例。
Instantiate(gamebg,newVector3(i,j,0),Quaternion.identity);可以基于一个已有的预制体(Prefab)或场景中的现有游戏对象创建出一个新的实例。
for (int x = 0; x < AllCellColumn; x++)
{
for (int y = 0; y < AllCellRow; y++)
{
//在PosObj位置基础上,根据两个for嵌套循环,生成格子
//x方向需要除去1.938f,y方向需要除去2f(套了Canvas需要计算的距离~~唉)
GameObject.Instantiate(Cell, new Vector3(PosObj.transform.position.x+(x/1.938f), PosObj.transform.position.y + (y / 2f), PosObj.transform.position.z), Quaternion.identity, this.transform);
GameObject.Instantiate(BluePintlePreformed, new Vector3(PosObj.transform.position.x + (x / 1.938f), PosObj.transform.position.y + (y / 2f), PosObj.transform.position.z), Quaternion.identity, this.transform);
}
}
游戏 总管理
为什么6-3要设置成单例模式,什么情况下需要使用单例模式?
游戏管理的创建,巧克力的生成
(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);
}
}
棋子背景产生了,但位置不正确。下节课纠正位置。
修改背景层级为-2,位于最下方。
一:创建背景
1.新建一个2D渲染Sprite,重命名为Background,将GameResources/UI/Game目录下的Background拖到新建渲染的Sprite上,调整新建渲染的大小,使其和摄像机镜头差不多大小
二:创建游戏管理
1.新建一空的游戏对象,重命名为GameManager,在GameManager上绑定一个同名脚本,将脚本拖到Scripts文件夹下,打开GameManager.cs编辑脚本
提示:记得用Shift+S保存场景,此场景重命名为Game,放入Scenes文件夹
2.Ctrl+R+E,属性快捷键
3.将背景Order in Layer改成-2
这里需要记住的,涉及到实例化的东西
GameObject chocolate = Instantiate(gridPrefab,new Vector3(x,y,0),Quaternion.identity);
GameManager
1.框架:单例模式
2.行和列数变量(行=x;列=y)
3.网格对象
4.初始化行列的网格对象
5.设置行列网格