How to programmatically add Tilemaps to a Grid





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am new to Unity3d and I'm trying to make my first 2d game.

In order to create Tilemaps in Unity, we usually right-click then choose 2D Object > Tilemap, which gives us a Grid + Tilemap, each child tilemap in that grid is considered a layer.



What I want is to be able to generate/add tilemaps with a script to an empty Grid (everytime empty the Grid then add layers).



I want to make a map system where the map is generated using binary files every time the player changes the map.



Is that possible?










share|improve this question























  • Sure it's possible. You would use Tilemap.SetTile. Then it's just a matter of mapping your binary file, the tiles, and your grid spacing all together.

    – ryeMoss
    Jan 4 at 18:47











  • But I have an empty Grid, I need to first add layers (Tilemap objects) to it. That's what I don't know how to do :/

    – Haytam
    Jan 4 at 18:54











  • I believe the tilemap layers are nothing more than a gameobject with a TileMap and TileMapRenderer components on it. You can instantiate this and make it a child of the Grid. And then you just need to run the SetTile method on the appropriate Gameobject/tilemap. Haven't tested this but fairly certain that's how it'd work.

    – ryeMoss
    Jan 4 at 19:05













  • And how would I instantiate a Gameobject, add TileMap/TileMapRenderer and make the Grid its parent please?

    – Haytam
    Jan 4 at 19:24











  • Instantiate and AddComponent

    – ryeMoss
    Jan 4 at 19:39


















0















I am new to Unity3d and I'm trying to make my first 2d game.

In order to create Tilemaps in Unity, we usually right-click then choose 2D Object > Tilemap, which gives us a Grid + Tilemap, each child tilemap in that grid is considered a layer.



What I want is to be able to generate/add tilemaps with a script to an empty Grid (everytime empty the Grid then add layers).



I want to make a map system where the map is generated using binary files every time the player changes the map.



Is that possible?










share|improve this question























  • Sure it's possible. You would use Tilemap.SetTile. Then it's just a matter of mapping your binary file, the tiles, and your grid spacing all together.

    – ryeMoss
    Jan 4 at 18:47











  • But I have an empty Grid, I need to first add layers (Tilemap objects) to it. That's what I don't know how to do :/

    – Haytam
    Jan 4 at 18:54











  • I believe the tilemap layers are nothing more than a gameobject with a TileMap and TileMapRenderer components on it. You can instantiate this and make it a child of the Grid. And then you just need to run the SetTile method on the appropriate Gameobject/tilemap. Haven't tested this but fairly certain that's how it'd work.

    – ryeMoss
    Jan 4 at 19:05













  • And how would I instantiate a Gameobject, add TileMap/TileMapRenderer and make the Grid its parent please?

    – Haytam
    Jan 4 at 19:24











  • Instantiate and AddComponent

    – ryeMoss
    Jan 4 at 19:39














0












0








0








I am new to Unity3d and I'm trying to make my first 2d game.

In order to create Tilemaps in Unity, we usually right-click then choose 2D Object > Tilemap, which gives us a Grid + Tilemap, each child tilemap in that grid is considered a layer.



What I want is to be able to generate/add tilemaps with a script to an empty Grid (everytime empty the Grid then add layers).



I want to make a map system where the map is generated using binary files every time the player changes the map.



Is that possible?










share|improve this question














I am new to Unity3d and I'm trying to make my first 2d game.

In order to create Tilemaps in Unity, we usually right-click then choose 2D Object > Tilemap, which gives us a Grid + Tilemap, each child tilemap in that grid is considered a layer.



What I want is to be able to generate/add tilemaps with a script to an empty Grid (everytime empty the Grid then add layers).



I want to make a map system where the map is generated using binary files every time the player changes the map.



Is that possible?







unity3d






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 4 at 18:41









HaytamHaytam

2,7162522




2,7162522













  • Sure it's possible. You would use Tilemap.SetTile. Then it's just a matter of mapping your binary file, the tiles, and your grid spacing all together.

    – ryeMoss
    Jan 4 at 18:47











  • But I have an empty Grid, I need to first add layers (Tilemap objects) to it. That's what I don't know how to do :/

    – Haytam
    Jan 4 at 18:54











  • I believe the tilemap layers are nothing more than a gameobject with a TileMap and TileMapRenderer components on it. You can instantiate this and make it a child of the Grid. And then you just need to run the SetTile method on the appropriate Gameobject/tilemap. Haven't tested this but fairly certain that's how it'd work.

    – ryeMoss
    Jan 4 at 19:05













  • And how would I instantiate a Gameobject, add TileMap/TileMapRenderer and make the Grid its parent please?

    – Haytam
    Jan 4 at 19:24











  • Instantiate and AddComponent

    – ryeMoss
    Jan 4 at 19:39



















  • Sure it's possible. You would use Tilemap.SetTile. Then it's just a matter of mapping your binary file, the tiles, and your grid spacing all together.

    – ryeMoss
    Jan 4 at 18:47











  • But I have an empty Grid, I need to first add layers (Tilemap objects) to it. That's what I don't know how to do :/

    – Haytam
    Jan 4 at 18:54











  • I believe the tilemap layers are nothing more than a gameobject with a TileMap and TileMapRenderer components on it. You can instantiate this and make it a child of the Grid. And then you just need to run the SetTile method on the appropriate Gameobject/tilemap. Haven't tested this but fairly certain that's how it'd work.

    – ryeMoss
    Jan 4 at 19:05













  • And how would I instantiate a Gameobject, add TileMap/TileMapRenderer and make the Grid its parent please?

    – Haytam
    Jan 4 at 19:24











  • Instantiate and AddComponent

    – ryeMoss
    Jan 4 at 19:39

















Sure it's possible. You would use Tilemap.SetTile. Then it's just a matter of mapping your binary file, the tiles, and your grid spacing all together.

– ryeMoss
Jan 4 at 18:47





Sure it's possible. You would use Tilemap.SetTile. Then it's just a matter of mapping your binary file, the tiles, and your grid spacing all together.

– ryeMoss
Jan 4 at 18:47













But I have an empty Grid, I need to first add layers (Tilemap objects) to it. That's what I don't know how to do :/

– Haytam
Jan 4 at 18:54





But I have an empty Grid, I need to first add layers (Tilemap objects) to it. That's what I don't know how to do :/

– Haytam
Jan 4 at 18:54













I believe the tilemap layers are nothing more than a gameobject with a TileMap and TileMapRenderer components on it. You can instantiate this and make it a child of the Grid. And then you just need to run the SetTile method on the appropriate Gameobject/tilemap. Haven't tested this but fairly certain that's how it'd work.

– ryeMoss
Jan 4 at 19:05







I believe the tilemap layers are nothing more than a gameobject with a TileMap and TileMapRenderer components on it. You can instantiate this and make it a child of the Grid. And then you just need to run the SetTile method on the appropriate Gameobject/tilemap. Haven't tested this but fairly certain that's how it'd work.

– ryeMoss
Jan 4 at 19:05















And how would I instantiate a Gameobject, add TileMap/TileMapRenderer and make the Grid its parent please?

– Haytam
Jan 4 at 19:24





And how would I instantiate a Gameobject, add TileMap/TileMapRenderer and make the Grid its parent please?

– Haytam
Jan 4 at 19:24













Instantiate and AddComponent

– ryeMoss
Jan 4 at 19:39





Instantiate and AddComponent

– ryeMoss
Jan 4 at 19:39












1 Answer
1






active

oldest

votes


















0














Thanks to @ryeMoss, I ended up doing the following:



private Tilemap CreateTilemap(string tilemapName)
{
var go = new GameObject(tilemapName);
var tm = go.AddComponent<Tilemap>();
var tr = go.AddComponent<TilemapRenderer>();

tm.tileAnchor = new Vector3(AnchorX, AnchorY, 0);
go.transform.SetParent(_mapGrid.transform);
tr.sortingLayerName = "Main";

return tm;
}





share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54044398%2fhow-to-programmatically-add-tilemaps-to-a-grid%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Thanks to @ryeMoss, I ended up doing the following:



    private Tilemap CreateTilemap(string tilemapName)
    {
    var go = new GameObject(tilemapName);
    var tm = go.AddComponent<Tilemap>();
    var tr = go.AddComponent<TilemapRenderer>();

    tm.tileAnchor = new Vector3(AnchorX, AnchorY, 0);
    go.transform.SetParent(_mapGrid.transform);
    tr.sortingLayerName = "Main";

    return tm;
    }





    share|improve this answer




























      0














      Thanks to @ryeMoss, I ended up doing the following:



      private Tilemap CreateTilemap(string tilemapName)
      {
      var go = new GameObject(tilemapName);
      var tm = go.AddComponent<Tilemap>();
      var tr = go.AddComponent<TilemapRenderer>();

      tm.tileAnchor = new Vector3(AnchorX, AnchorY, 0);
      go.transform.SetParent(_mapGrid.transform);
      tr.sortingLayerName = "Main";

      return tm;
      }





      share|improve this answer


























        0












        0








        0







        Thanks to @ryeMoss, I ended up doing the following:



        private Tilemap CreateTilemap(string tilemapName)
        {
        var go = new GameObject(tilemapName);
        var tm = go.AddComponent<Tilemap>();
        var tr = go.AddComponent<TilemapRenderer>();

        tm.tileAnchor = new Vector3(AnchorX, AnchorY, 0);
        go.transform.SetParent(_mapGrid.transform);
        tr.sortingLayerName = "Main";

        return tm;
        }





        share|improve this answer













        Thanks to @ryeMoss, I ended up doing the following:



        private Tilemap CreateTilemap(string tilemapName)
        {
        var go = new GameObject(tilemapName);
        var tm = go.AddComponent<Tilemap>();
        var tr = go.AddComponent<TilemapRenderer>();

        tm.tileAnchor = new Vector3(AnchorX, AnchorY, 0);
        go.transform.SetParent(_mapGrid.transform);
        tr.sortingLayerName = "Main";

        return tm;
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 5 at 14:20









        HaytamHaytam

        2,7162522




        2,7162522
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54044398%2fhow-to-programmatically-add-tilemaps-to-a-grid%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Monofisismo

            Angular Downloading a file using contenturl with Basic Authentication

            Olmecas