internal override IEnumerator SpawnPieces(Texture texture)
    {
        yield return(internalPuzzlePivot.SpawnPieces(texture));

        internalPuzzlePivot.ScramblePiecePosition();
        yield return(null);

        piecePivots = CreatePiecePivotList();

        yield return(TakeSnapShotsOfPiecePivots(piecePivots));

        if (TopPivot() == this)
        {
            yield return(base.SpawnPieces(null));
        }
        else
        {
            yield return(TopPivot().SpawnPieces(null));
        }

        SetPiecePivotsExtraRenderer(piecePivots);

        for (int i = 0; i < piecePivots.Count; i++)
        {
            TopPivot().SetTextureForPiecesRenderer(piecePivots[i].picture, piecePivots[i].pieceRendererIndex);
        }

        SetPiecePivotsGoal(piecePivots);

        internalPuzzlePivot.pivot.gameObject.transform.localPosition = new Vector3(0, 0, -5);
        HideAllPiecePivots();
    }
示例#2
0
    private IEnumerator SetupExtraPivot(PuzzlePivot puzzlePivot)
    {
        SetBackgroundColor(puzzlePivots.Count);

        HideAllPuzzlePivots();
        TakeSnapShot(puzzlePivot);

        puzzlePivots.Add(puzzlePivot);
        yield return(puzzlePivot.SpawnPieces(snapShot));

        if (puzzlePivot.collectableObject != null)
        {
            collectableHelper.SetupCollectableLayerForPieces(puzzlePivot);
        }

        puzzlePivot.SetPiecePosition();
        activePuzzlePivot = puzzlePivot;
        activePuzzlePivot.SetDepthOfPieces();
    }