void MoveBlock(BlockEvent blockToMove, float duration) { if ((blockToMove.coord - emptyBlock.coord).sqrMagnitude == 1) { blocks[blockToMove.coord.x, blockToMove.coord.y] = emptyBlock; blocks[emptyBlock.coord.x, emptyBlock.coord.y] = blockToMove; Vector2Int targetCoord = emptyBlock.coord; emptyBlock.coord = blockToMove.coord; blockToMove.coord = targetCoord; Vector3 targetPosition = emptyBlock.transform.position; emptyBlock.transform.position = blockToMove.transform.position; blockToMove.MoveToPosition(targetPosition, duration); blockIsMoving = true; } }