Beispiel #1
0
        public static BlockFitPuzzle CreatePuzzleWithParent(RectTransform boardParent, RectTransform pieceStoreParent, GameObject puzzlePrefab)
        {
            // create the piece store canvas
            GameObject    pieceCanvasObject = new GameObject("PieceStore");
            RectTransform pieceCanvas       = pieceCanvasObject.AddComponent <RectTransform>();

            pieceCanvas.SetParent(pieceStoreParent);
            pieceCanvas.localPosition = Vector3.zero;
            pieceCanvas.localScale    = Vector3.one;
            pieceCanvas.sizeDelta     = pieceStoreParent.sizeDelta;

            // create the puzzle canvas and pieces
            GameObject    puzzleCanvas = Instantiate(puzzlePrefab);
            RectTransform canvas       = puzzleCanvas.GetComponent <RectTransform>();

            canvas.SetParent(boardParent);
            canvas.localPosition = Vector3.zero;
            canvas.localScale    = Vector3.one;
            canvas.sizeDelta     = boardParent.sizeDelta;

            BlockFitPuzzle blockFitPuzzle = puzzleCanvas.AddComponent <BlockFitPuzzle>();

            blockFitPuzzle.CreatePuzzleBoard(canvas, pieceCanvas);

            return(blockFitPuzzle);
        }
Beispiel #2
0
        public override void OnClick(BaseEventData data)
        {
            base.OnClick(data);

            _blockPuzzleScreen.gameObject.SetActive(true);

            if (_blockFitPuzzle == null)
            {
                _blockFitPuzzle = BlockFitPuzzle.CreatePuzzleWithParent(
                    _blockPuzzleContainer,
                    _blockFitPieceStoreContainer,
                    _blockPuzzlePrefab);

                _blockFitPuzzle.SetOnCompleteCallback(OnCompletePuzzle);
            }
        }