Exemplo n.º 1
0
        private Transform GetGrandestParentPiece(PuzzlePiece piece)
        {
            PuzzlePiece parentPiece = piece.transform.parent.GetComponent <PuzzlePiece>();

            return(parentPiece != null?
                   parentPiece.GetGrandestParentPiece(parentPiece) :
                       piece.transform);
        }
Exemplo n.º 2
0
        public Transform AttemptToJoinPieces()
        {
            Transform result = null;

            foreach (PolygonCollider2D neighbor in neighboringColliders.ToList())
            {
                if (Vector3.Distance(transform.position, neighbor.transform.position) < neighborCheckDistance)
                {
                    PuzzlePiece neighborPiece = neighbor.GetComponent <PuzzlePiece>();
                    if (!neighborPiece.noMove && !neighborPiece.placed)
                    {
                        result = neighborPiece.GetGrandestParentPiece(neighborPiece);
                        RemoveNeighbor(neighbor);
                        neighborPiece.RemoveNeighbor(collider);
                        break;
                    }
                }
            }
            return(result);
        }