Unity实现俄罗斯方块(三)
解决穿透问题
逻辑部分
- 在物体进行移动的过程中更新格子的信息,原来的所占据的位置信息进行置空操作,现在所占据的格子进行赋值操作。
- 在移动后的位置进行判断,首先移动后的位置不能是null,且不能不是移动后的物体
代码部分
void updateGrid()
{
//去除移动以前的位置信息
for (int y = 0; y < Grid.height; y++)
{
for (int x = 0; x < Grid.width; x++)
{
//脚本是挂在物体上面的而不是是组成物体的格子上
//如果有格子是和现在的位置相同那么进行置空操作
if (Grid.grid[x, y]!= null)
{
if (Grid.grid[x, y].parent == transform)
{
Grid.grid[x, y] = null;
}
}
}
}
//加入本次的更新的位置信息
foreach (Transform child in transform)
{
Vector2 v &