- Home /
How to make a custom inspector to preview tile?
So i making a script to prototyping levels (let's call this script A) and i made a function to set boundaries of the room when you play the scene but i want to see it set while in preview so i make another function to do that. It was like the first one but switch SetTile() to SetEditorPreviewTile() (This function is in script A) and i called this function in a custom inspector script. But it wouldn't clear the tile even though i used tilemap.ClearAllEditorPreviewTiles(). So what is the problem? And do i need to call the function or can i just make a new function in the inspector script because i saw there was a namespace UnityEditor.Tilemap for doing tilemap (What is this namespace for)?
This is script A:
 void SetBoundaries()
     {
         Vector3Int position = tilemap.WorldToCell(new Vector3(0, 0, 0));
 
         for (int x = 0; x < width; x++)
         {
             position.y = 0;
 
             position.x = x * (tilesPerUnit);
 
             SetTile(position);
 
             if (x > 0 && x < width - 1)
             {
                 position.y = height * tilesPerUnit - tilesPerUnit;
 
                 SetTile(position);
 
                 continue;
             }
             for (int y = 1; y < height; y++)
             {
                 position.y = y * (tilesPerUnit);
 
                 SetTile(position);
             }
         }
     }
 public void SetBoundariesOnInspector()
     {
         if (tilemap == null)
         {
             tilemap = GetComponent<Tilemap>();
             Debug.Log(tilemap);
         }
 
         tilemap.ClearAllEditorPreviewTiles();
 
         Vector3Int position = tilemap.WorldToCell(new Vector3(0, 0, 0));
 
         for (int x = 0; x < width; x++)
         {
             position.y = 0;
 
             position.x = x * (tilesPerUnit);
 
             SetTileOnInspector(position);
 
             if (x > 0 && x < width - 1)
             {
                 position.y = height * tilesPerUnit - tilesPerUnit;
 
                 SetTileOnInspector(position);
 
                 continue;
             }
             for (int y = 1; y < height; y++)
             {
                 position.y = y * (tilesPerUnit);
 
                 SetTileOnInspector(position);
             }
         }
     }
The function SetTile is just use tilemap.SetTile and some other stuff.
And i called the SetBoundariesOnInspector in a custom inspector script like this:
 public override void OnInspectorGUI()
     {
         base.OnInspectorGUI();
 
         Rooms room = (Rooms)target;
 
         room.SetBoundariesOnInspector();
     }
Your answer
 
 
             Follow this Question
Related Questions
Make a custom inspector that shows a group of variables in form of list 2 Answers
How to show preview tile even when i don't select the gameobject in the hierachy? 0 Answers
Custom Window with Hierarchy 1 Answer
Using Tilemap draw tools to change properties with custom editor 0 Answers
How can i create a button in a custom class with UnityEditor using custom editor? 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                