using System.Collections; using System.Collections.Generic; using UnityEngine; public class TileGenerator : MonoBehaviour { public GameObject wall; public Texture2D texture; public Vector2 tileSize; public float groutSize; public void GenerateTilesForWall() { Vector3 wallSize = wall.GetComponent().bounds.size; GenerateWallTile(wallSize, texture); } public void GenerateWallTile(Vector3 wallSize, Texture2D tileTexture) { int numTilesX = Mathf.CeilToInt(wallSize.x / tileSize.x); int numTilesY = Mathf.CeilToInt(wallSize.y / tileSize.y); GameObject tileTemplate = new GameObject("TileTemplate"); tileTemplate.transform.position = Vector3.zero; tileTemplate.transform.parent = wall.transform; GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Quad); plane.transform.parent = tileTemplate.transform; plane.transform.localPosition = Vector3.zero; plane.transform.localScale = new Vector3(tileSize.x, tileSize.y, 1); Material tileMaterial = new Material(Shader.Find("Standard")); tileMaterial.mainTexture = tileTexture; plane.GetComponent().material = tileMaterial; Destroy(plane.GetComponent()); for (int x = 0; x < numTilesX; x++) { for (int y = 0; y < numTilesY; y++) { Vector3 tilePosition = new Vector3(x * (tileSize.x + groutSize), y * (tileSize.y + groutSize), 0); GameObject tile = Instantiate(tileTemplate, tilePosition, Quaternion.identity, wall.transform); tile.name = "Tile"; } } Destroy(tileTemplate); } }