示例#1
0
        public TerrainTile CreateAndSetTile(Vector3Int coord, TerrainTile tilePrefab, TerrainTile originalTile = null)
        {
            TerrainTile newTile = Instantiate(tilePrefab);

            newTile.coordinates = coord;

            if (debugCells)
            {
                if (originalTile == null)
                {
                    GameObject newObj     = Instantiate(locTextPrefab);
                    Vector3    worldPoint = tilemap.CellToWorld(coord);
                    newObj.transform.position = worldPoint;
                    newObj.transform.SetParent(textHolder, true);
                    TextMeshPro text = newObj.GetComponent <TextMeshPro>();
                    text.transform.localScale = tilemapScale * .5f;
                    text.name = coord.ToString();
                    text.SetText(coord.ToString() + "\n" + HexTools.OffsetToCube(coord));
                    newTile.text = text;
                }
                else
                {
                    newTile.text = originalTile.text;
                    newTile.text.SetText(coord.ToString() + "\n" + HexTools.OffsetToCube(coord));
                }
            }

            if (originalTile != null)
            {
                tilemap.SetTile(coord, null);
            }

            tilemap.SetTile(coord, newTile);
            return(newTile);
        }