public object Clone() { Puzzle puzzle = new Puzzle(); // puzzle.AssetName = AssetName; puzzle.BgFgOrigin = BgFgOrigin; puzzle.BackgroundTextureName = BackgroundTextureName; puzzle.CollisionLayer = (collisionLayer != null ? CollisionLayer.Clone() as int[] : null); puzzle.Dimensions = Dimensions; puzzle.ForegroundTextureName = ForegroundTextureName; puzzle.GridOrigin = GridOrigin; puzzle.IsCleared = IsCleared; puzzle.IsGridShiftX = IsGridShiftX; puzzle.isGridShiftY = IsGridShiftY; puzzle.IsLocked = IsLocked; puzzle.Key = Key; puzzle.MusicCueName = MusicCueName; puzzle.Name = Name; puzzle.Place = Place; puzzle.OurSolution = OurSolution; puzzle.PlayerSolution = PlayerSolution; puzzle.portraitTexture = portraitTexture; puzzle.PuzzleLayer = (puzzleLayer != null ? PuzzleLayer.Clone() as int[] : null); puzzle.ShapeLayer = (shapeLayer != null ? ShapeLayer.Clone() as int[] : null); puzzle.Size = Size; puzzle.Statistics = Statistics; puzzle.TileLayer = (tileLayer != null ? TileLayer.Clone() as int[] : null); puzzle.TileSize = TileSize; puzzle.tilesPerRow = tilesPerRow; return(puzzle); }