示例#1
0
        // Start is called before the first frame update
        void Start()
        {
            NeighbotGrid <Tile> gridBuilder = new NeighbotGrid <Tile>(Width, Height, (x, y) =>
            {
                var tile = Instantiate(TilePrefab, TilesParent ?? transform).AddComponent <Tile>();

                tile.name = $"{x} - {y}";

                tile.transform.localPosition = new Vector3((x - ((float)Width / 2) + TileWidth), (y - ((float)Height / 2) + TileHeight), 0);

                return(tile);
            });
        }
示例#2
0
        // Use this for initialization
        void Start()
        {
            GameObject          gameObject  = new GameObject("Puzzle");
            Puzzle              p           = gameObject.AddComponent <Puzzle>();
            NeighbotGrid <Tile> gridBuilder = new NeighbotGrid <Tile>(width, height, (x, y) =>
            {
                GameObject tileGameObject = new GameObject();
                Tile tile;
                SpriteRenderer sr = tileGameObject.AddComponent <SpriteRenderer>();
                sr.sprite         = sprite;
                if (endTileX == x && endTileY == y)
                {
                    tileGameObject.name = $"End Point: {x},{y}";
                    tile     = tileGameObject.AddComponent <EndTile>();
                    sr.color = new Color(0.5f, 0, 0);
                }
                else
                {
                    tileGameObject.name = ($"Tile: {x},{y}");
                    tile = tileGameObject.AddComponent <Tile>();
                }
                tileGameObject.transform.SetParent(p.transform);
                tileGameObject.transform.position = new Vector3((x - ((float)width / 2) + size), (y - ((float)height / 2) + size), 0);
                return(tile);
            });

            p.tile = gridBuilder.Grid;

            GameObject   obj    = new GameObject("Player");
            PuzzlePlayer player = obj.AddComponent <PuzzlePlayer>();

            p.tile[0][0].SetContent(player);
            SpriteRenderer playerSR = player.gameObject.AddComponent <SpriteRenderer>();

            playerSR.sprite           = sprite;
            playerSR.color            = Color.red;
            player.transform.position = new Vector2(0, 0);

            GameObject   blockObj    = new GameObject("block");
            BlockContent puzzleBlock = blockObj.AddComponent <BlockContent>();

            p.tile[1][1].SetContent(puzzleBlock);
            SpriteRenderer blockSR = puzzleBlock.gameObject.AddComponent <SpriteRenderer>();

            blockSR.sprite = sprite;
            blockSR.color  = Color.black;
            puzzleBlock.transform.position = new Vector2(0, 0);
        }