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); }
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); } }