TileGenerator.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using UnityEngine;
  2. using UnityEngine.Tilemaps;
  3. /// <summary>
  4. /// Helper script to generate placeholder tile sprites and tiles
  5. /// Use this if you don't have tile graphics yet
  6. /// </summary>
  7. public class TileGenerator
  8. {
  9. /// <summary>
  10. /// Creates a simple colored sprite at runtime
  11. /// </summary>
  12. public static Sprite CreateColoredSprite(Color color, string name = "Tile")
  13. {
  14. Texture2D texture = new Texture2D(16, 16, TextureFormat.RGBA32, false);
  15. texture.name = name;
  16. Color[] pixels = new Color[16 * 16];
  17. for (int i = 0; i < pixels.Length; i++)
  18. {
  19. pixels[i] = color;
  20. }
  21. texture.SetPixels(pixels);
  22. texture.Apply();
  23. return Sprite.Create(texture, new Rect(0, 0, 16, 16), new Vector2(0.5f, 0.5f), 16);
  24. }
  25. /// <summary>
  26. /// Creates a simple checkered pattern texture for visual variety
  27. /// </summary>
  28. public static Sprite CreateCheckerSprite(Color color1, Color color2, string name = "Checker")
  29. {
  30. Texture2D texture = new Texture2D(16, 16, TextureFormat.RGBA32, false);
  31. texture.name = name;
  32. Color[] pixels = new Color[16 * 16];
  33. for (int y = 0; y < 16; y++)
  34. {
  35. for (int x = 0; x < 16; x++)
  36. {
  37. bool isEven = (x / 8 + y / 8) % 2 == 0;
  38. pixels[y * 16 + x] = isEven ? color1 : color2;
  39. }
  40. }
  41. texture.SetPixels(pixels);
  42. texture.Apply();
  43. return Sprite.Create(texture, new Rect(0, 0, 16, 16), new Vector2(0.5f, 0.5f), 16);
  44. }
  45. /// <summary>
  46. /// Creates a Tile asset from a sprite
  47. /// </summary>
  48. public static Tile CreateTile(Sprite sprite)
  49. {
  50. Tile tile = ScriptableObject.CreateInstance<Tile>();
  51. tile.sprite = sprite;
  52. return tile;
  53. }
  54. }