Added a grid background for building

This commit is contained in:
2026-03-30 20:05:00 +01:00
parent 8caa8645ff
commit dbd7414f8f
11 changed files with 389 additions and 8 deletions

View File

@@ -0,0 +1,51 @@
using UnityEngine.UI;
using UnityEngine;
namespace Fruitomation.UI
{
[RequireComponent(typeof(Image))]
public class GridViewController : MonoBehaviour
{
[SerializeField] private Texture2D SourceTexture;
[SerializeField] private int Cols;
[SerializeField] private int Rows;
private Image Image;
private void Awake()
{
Texture2D tiled = TileTexture(SourceTexture, Cols, Rows);
Sprite sprite = Sprite.Create
(
tiled,
new Rect(0, 0, tiled.width, tiled.height),
new Vector2(0.5f, 0.5f)
);
Image = GetComponent<Image>();
Image.color = Color.white;
Image.sprite = sprite;
}
private static Texture2D TileTexture(Texture2D source, int cols, int rows)
{
int srcW = source.width;
int srcH = source.height;
Texture2D result = new(srcW * cols, srcH * rows);
Color[] srcPixels = source.GetPixels();
for (int row = 0; row < rows; row++)
for (int col = 0; col < cols; col++)
{
result.SetPixels(col * srcW, row * srcH, srcW, srcH, srcPixels);
}
result.Apply();
return result;
}
private void Update() =>
Image.enabled = GameStateController.Is(GameState.Building);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0d75ec91748845a48c06619878c5b1f0
timeCreated: 1774895096